【发布时间】:2014-01-11 19:56:31
【问题描述】:
如何设置 gTest,以便我可以链接 aganist 库?我将在 vim 中编码,所以我只想安装库,不像 XCode setup。目标是能够通过将-lgtest 设置为链接器标志以及可选地(如果我没有编写自己的测试主程序,显式-lgtest_main 标志)将项目链接到库。
【问题讨论】:
标签: c++ macos googletest
如何设置 gTest,以便我可以链接 aganist 库?我将在 vim 中编码,所以我只想安装库,不像 XCode setup。目标是能够通过将-lgtest 设置为链接器标志以及可选地(如果我没有编写自己的测试主程序,显式-lgtest_main 标志)将项目链接到库。
【问题讨论】:
标签: c++ macos googletest
建议您静态链接。没有什么秘密。有点跑题了,我推荐在我的项目中使用 CMake,在这里 (https://github.com/oblitum/operations) 我设置了一个非常基本的框架项目,链接到 gmock 和 gtest(谷歌也建议你使用相同的 gtest gmock,当你使用 gmock 时)。在external 文件夹中驻留着通过ExternalProject_Add 实际导入gtest 和gmock 的外部CMake 文件。在示例中,我将URL 设置为我系统中下载gmock 和gtest 的文件路径,但是,如果您查看CMake ExternalProject_Add 文档,您可以看到下载网址、在线存储库网址也可用,这可以让您的构建下载 gtest 和 gmock,并自动缓存它。
【讨论】:
在开始之前,请确保您已阅读并理解 this note from Google!本教程使 gtest 的使用变得简单,但可能会介绍nasty bugs。
$ wget https://github.com/google/googletest/archive/release-1.8.0.zip
或通过hand 获取。我想我不会维护这个小操作指南,所以如果你偶然发现它并且链接已经过时,请随时编辑它。
$ unzip gtest-1.8.0.zip
$ cd gtest-1.8.0
$ ./configure
$ make
$ sudo cp -a include/gtest /usr/include
$ sudo cp -a lib/.libs/* /usr/lib/
gTestframework 现在可以使用了。只是不要忘记通过将-lgtest 设置为链接器标志来将您的项目与库链接,如果您没有编写自己的测试主程序,则可以选择显式的-lgtest_main 标志。
从这里开始,您可能想访问 Google 的 documentation 了解该框架以了解其工作原理。编码愉快!
【讨论】:
cmake .
我认为 cmake 是一种在 OSX 上设置和使用 gtest 的简单方法。它无需手动复制文件即可工作。解压gooletest-release-1.8.0,然后
cd googletest-release-1.8.0
# create a build directory
mkdir build
cd build
# build configuration
cmake .. -DBUILD_GTEST=ON -DBUILD_SHARED_LIBS=ON
# build it
make
# installation
sudo make install
之后,您可以使用 cmake 命令轻松地将 gtest 合并到您的项目中
# sets GTEST_INCLUDE_DIRS and GTEST_LIBRARIES
find_package( GTest REQUIRED )
# adds the gtest include directory
include_directories( ${GTEST_INCLUDE_DIRS} )
# links gtest
target_link_libraries( yourTestApp ${GTEST_LIBRARIES} )
【讨论】: