据我所知,这两个宏用于启用 auto_link.hpp 生成#pragma comment(lib, name) 以便链接器可以自动链接使用的库,这应该只适用于 windows。但是在linux上,为什么我仍然需要至少定义两个宏中的一个,同时还必须指定使用的库?或者这两个宏在 linux 上如何工作?
最佳答案
宏:
- BOOST_LOG_DYN_LINK
- BOOST_TEST_DYN_LINK
- BOOST_ALL_DYN_LINK
- 等等
表示代码将链接到动态加载的(so
或 dll
)boost
库。
由于 linux
上的 boost
库通常构建为动态加载的库,因此有必要定义上述宏之一以链接相关的 boost
图书馆。
Windows
上的Boost
库通常构建为静态链接库。
但是,如果相关的 boost
库已构建为动态加载的库,那么在 Windows
上构建时也需要宏。
关于c++ - 为什么我在用boost编译时仍然必须在linux上使用BOOST_LOG_DYN_LINK或BOOST_ALL_DYN_LINK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56019254/