如何导出链接器选项?

Posted

技术标签:

【中文标题】如何导出链接器选项?【英文标题】:how to export linker options? 【发布时间】:2013-03-28 01:56:22 【问题描述】:

我几乎可以肯定这是一个骗局,但我什至没有开始研究这个问题的基本词汇。

我有一些g++ 链接器标志,我想将它们永久化为export /etc/bash.bashrc 中的变量。

是否可以为-D_WEBSOCKETPP_CPP11_STL_ -D_WEBSOCKETPP_NO_CPP11_REGEX_ -lboost_regex -lboost_system 执行此操作,就像对于 websocket++ https://***.com/a/15469310/1382306 和 -lmysqlcppconn mysql 连接器 c++ https://***.com/a/11879650/1382306 的此答案一样?

如果是这样,请告诉我怎么做。如果没有,请告诉我如何开始。

【问题讨论】:

你是用make编译,还是直接调用g++ @teppic g++ 直接。感谢您的收看! 啊,make你可以设置LDFLAGS。一个选项是创建一个 bash 函数或别名以包含一个执行相同操作的环境变量。 @teppic 谢谢!我会调查的。这是为了纯粹的懒惰。您介意将答案扩展一点吗? 【参考方案1】:

如果您改用make,则会将各种标准环境变量发送到编译器。一个是LDFLAGS,比如:

$ export LDFLAGS='-Wl,--print-map'
$ make foo.cpp
g++   -Wl,--print-map  foo.cpp   -o foo      // default rule
[...]

链接器标志必须在 -Wl 之后以逗号分隔传递。

或者,您可以使用适当的环境变量创建别名或 shell 函数来调用 g++

【讨论】:

以上是关于如何导出链接器选项?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 code::blocks 以在目标链接器选项之前链接项目链接器选项?

如何关闭链接器?

如何获取 GCC 链接器命令?

防止导出的函数被链接器删除

GNU链接器:替代--version-script在命令行列出导出的符号?

非 GNU 链接器是不是有与 GNU 链接器“--just-symbols”选项等效的选项?