【发布时间】:2012-12-12 15:04:07
【问题描述】:
我将 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
【问题讨论】:
-
至少可以为 google-test 制作 Jamroot 并使用 use-project 语句将我的项目链接到这个新项目。并使用提升链接功能。但是如何链接外部静态库的问题仍然悬而未决
标签: c++ boost-build