如何在boost中指定链接器依赖项.构建Jamroot
How to specify linker dependencies in boost.build Jamroot
当我尝试用b2 toolset=clang
编译exec时,它使用链接命令,如:
clang++ -L/apps/bzip2/lib -L/apps/zlib/lib -o fixfast/bin/clang-linux-3.3/release/link-static/fixfast-mds_MCAST fixfast/bin/clang-linux-3.3/release/link-static/fixfastDataD.o /apps/boost/root/bin.v2/libs/date_time/build/clang-linux-3.3/release/link-static/libboost_date_time.a ~/infra_install/lib/libfixfast.a ~/infra_install/lib/libCDef.a -lbz2 -lz -lpthread
在boost中,和
在一个未定义引用的长列表中失败,而下面的重新排序版本链接良好:
clang++ -L/apps/bzip2/lib -L/apps/zlib/lib -o fixfast/bin/clang-linux-3.3/release/link-static/fixfast-mds_MCAST fixfast/bin/clang-linux-3.3/release/link-static/fixfastDataD.o ~/infra_install/lib/libfixfast.a ~/infra_install/lib/libCDef.a /apps/boost/root/bin.v2/libs/date_time/build/clang-linux-3.3/release/link-static/libboost_date_time.a -lbz2 -lz -lpthread
我认为我指定libCDef
对/boost/date_time//boost_date_time
的链接依赖的方式可能不足以在链接期间有正确的顺序。
CDef/Jamroot:
project : usage-requirements <include>~/infra_install ;
lib CDef
: [ glob *.cpp ]
:
<library>/boost/date_time//boost_date_time
<library>/boost/filesystem//boost_filesystem
<library>/boost/system//boost_system
<library>/boost/iostreams//boost_iostreams
<link>static
;
install libCDef
: CDef
: <install-type>LIB
<variant>release:<location>"~/infra_install/lib"
: release
;
我需要指定CDef依赖于boost_date_time,因此链接器应该这样排序。
基于http://www.boost.org/boost-build2/doc/html/bbv2/faq/liborder.html本文由Steven Watanabe贡献。我试图通过使用<use>
命令来帮助链接器。虽然gcc可以工作,但对于clang-linux和intel-linux却不行。
然后Kohei Takashi告诉我解决方案,那就是修改clang-linux。intel-linux.jam
https://svn.boost.org/trac/boost/ticket/5820不幸的是,这段对话正在进行中。建立电子邮件组,但是谢谢大家!
相关文章:
- 为什么构建目录中新构建的共享库与安装目录中的副本具有不同的依赖项集?
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 使用Bazel构建具有不同编译器/链接器选项的C/C++依赖关系
- 使用 Unity 构建加快C++构建速度,并减少标头依赖项
- cmake:构建依赖于非源文件.Qt帮助生成
- 无法构建外部库依赖项
- C++构建过程 - lib 依赖项
- 如何在没有任何依赖库的情况下在Visual Studio中构建dll?
- 如果构建是源代码外的,CMake 无法确定标头依赖项?
- 如何使用捆绑依赖项-CMAKE构建静态库
- G++ 构建具有提升依赖项的 C++ 程序
- C++为 Android 构建的库使用了错误的依赖项符号
- CMAKE:如何引用和构建单独的 CMAKE 项目依赖项?
- 酿造警告:依赖关系是使用不同的C 标准库构建的
- 构建不依赖于MSVCR120.DLL的自定义英特尔 MKL DLL
- Cmake构建一个共享库,其中包含其所有依赖关系
- 为 c++ 构建一个静态库,该库在内部依赖于第三方库
- 完全静态构建具有所有依赖项(libgcc等)的应用程序
- 如何只构建一个依赖项目标
- 使用OpenCV 3.3依赖项构建Bazel