gpt4 book ai didi

c++ - 如何将 boost.build 项目链接到特定的静态库

转载 作者:太空狗 更新时间:2023-10-29 23:07:03 24 4
gpt4 key购买 nike

我为我的项目使用 boost.build。当然,我使用boost本身。此外,出于测试目的,我在我的项目中使用了 google-test 库。我必须将我的项目与 google-test 的静态库链接起来。我找到了为 MinGW 做这个的解决方法(对于 linux 的 gcc 也适用)

exe foo : $(IMPORTANT_PART) $(TEST_UTILITY_PART) : <toolset>gcc <linkflags>"../../libs/gtest-1.6.0/libs/gtest_main.a" <linkflags>-static <linkflags>-lpthread ;

它看起来有点丑陋,但它确实有效。 msvc 的规则看起来更难看

exe foo : $(IMPORTANT_PART) $(TEST_UTILITY_PART) : <toolset>msvc <linkflags>/LIBPATH:../../libs/gtest-1.6.0/libs <linkflags>/DEFAULTLIB:gtest_main-mdd.lib
<linkflags>/DEFAULTLIB:gtestd-md.lib
;

在 boost.build 项目文件中是否有更自然的方式将目标链接到外部静态库。


附言当然,使用 google-test 和 boost mix 闻起来不太好,但无论如何,有很多外部库涵盖了 boost 未涵盖的领域。

TIA

最佳答案

太棒了!感谢指点我的人http://www.boost.org/boost-build2/doc/html/bbv2/tutorial/prebuilt.html页。 (评论消失了)看来,我确实不仔细阅读了这一页。具有文件属性的目标库可以完成我搜索的内容。谢谢!


至于使用 google test 和 boost build 我是这样做的:我为 google-test 制作了 Jamfile。非常简单:

gtest.lib/Jamfile
project gtest_main
: requirements <include>../../../libs/gtest-1.6.0/include
<include>../../../libs/gtest-1.6.0/
: source-location ../../../libs/gtest-1.6.0
: build-dir ../../../libs/gtest-1.6.0/bin.b2 ;

lib gtest_main : src/gtest_main.cc src/gtest-all.cc : <link>static ;

然后,在我的项目文件中的某处:

使用项目/gtest : ./gtest.lib ;

并在项目的需求部分提及//gtest。

关于c++ - 如何将 boost.build 项目链接到特定的静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13842544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com