【问题标题】:How to properly setup googleTest on OS X aside from XCode除了 XCode,如何在 OS X 上正确设置 googleTest
【发布时间】:2014-01-11 19:56:31
【问题描述】:

如何设置 gTest,以便我可以链接 aganist 库?我将在 vim 中编码,所以我只想安装库,不像 XCode setup。目标是能够通过将-lgtest 设置为链接器标志以及可选地(如果我没有编写自己的测试主程序,显式-lgtest_main 标志)将项目链接到库。

【问题讨论】:

    标签: c++ macos googletest


    【解决方案1】:

    建议您静态链接。没有什么秘密。有点跑题了,我推荐在我的项目中使用 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,并自动缓存它。

    【讨论】:

      【解决方案2】:

      在开始之前,请确保您已阅读并理解 this note from Google!本教程使 gtest 的使用变得简单,但可能会介绍nasty bugs

      1。获取 googletest 框架

      $ wget https://github.com/google/googletest/archive/release-1.8.0.zip
      

      或通过hand 获取。我想我不会维护这个小操作指南,所以如果你偶然发现它并且链接已经过时,请随时编辑它。

      2。解压并构建谷歌测试

      $ unzip gtest-1.8.0.zip
      $ cd gtest-1.8.0
      $ ./configure
      $ make
      

      3。在系统上“安装”头文件和库。

      $ sudo cp -a include/gtest /usr/include
      $ sudo cp -a lib/.libs/* /usr/lib/
      

      gTestframework 现在可以使用了。只是不要忘记通过将-lgtest 设置为链接器标志来将您的项目与库链接,如果您没有编写自己的测试主程序,则可以选择显式的-lgtest_main 标志。

      从这里开始,您可能想访问 Google 的 documentation 了解该框架以了解其工作原理。编码愉快!

      【讨论】:

      • 如果你在 vim 中编码,你会发现这个插件很有用:vim-gtest
      • 在最新的 OSX 上,在第 3 步,我得到:“不允许操作”。我似乎无法在 /user/include 中创建任何文件夹。我该怎么办?
      • 放入/usr/local/include
      • 本教程不再工作...... ./configure -bash: ./configure: 没有这样的文件或目录
      • 看起来他们切换到了 cmake。运行cmake .
      【解决方案3】:

      我认为 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} )
      

      【讨论】:

        猜你喜欢
        • 2014-04-30
        • 2016-10-01
        • 2016-12-11
        • 1970-01-01
        • 2012-01-03
        • 2011-04-20
        • 1970-01-01
        • 1970-01-01
        • 2016-06-08
        相关资源
        最近更新 更多