通过编译器环境变量或 C 和 C++ 中的命令行标志指定库路径?
Posted
技术标签:
【中文标题】通过编译器环境变量或 C 和 C++ 中的命令行标志指定库路径?【英文标题】:Specify library path via compiler environment variables or command line flags in C and C++? 【发布时间】:2016-05-28 22:32:44 【问题描述】:在项目之外使用库时,例如boost 或Guidelines Support Library,我们应该如何指定与该库相关的路径?
添加编译器使用的LIBRARY_PATH
和CPLUS_INCLUDE_PATH
环境变量的路径。
定义一个环境变量(例如GSL_PATH
)然后
在每个项目的makefile中添加-L
和-isystem
标志。
对此有最佳实践吗?每种方法的优点和缺点是什么?考虑在其他系统上编译和使用项目的需要。
由于各种原因,这些库安装在自定义路径中
【问题讨论】:
这是主观的,但是——我强烈建议使用标志。标志是显式的,环境变量调试起来更烦人。如果您使用标志,您可以从 make 调用中复制命令并在终端窗口中运行它。使用环境变量,你不能。我目前正在使用一个在工作中使用大量环境变量的构建系统,这非常痛苦。 【参考方案1】:您可以使用 cmake 来配置您的项目
然后用 cmake 找到 boost 和 gsl
https://cmake.org/cmake/help/v3.2/module/FindGSL.html https://cmake.org/cmake/help/v3.0/module/FindBoost.html
Example for boost
【讨论】:
以上是关于通过编译器环境变量或 C 和 C++ 中的命令行标志指定库路径?的主要内容,如果未能解决你的问题,请参考以下文章