在 Unix 中设置 Googletest

Setting up Googletest in Unix

我在使用 GoogleTest 时遇到问题,即我不清楚我应该包括哪些库(以及如何)。按照 README 中的说明,我做了

g++ -isystem ${GTEST_DIR}/include -I${GTEST_DIR} -pthread -c \
${GTEST_DIR}/src/gtest-all.cc

ar -rv libgtest.a gtest-all.o

其中 ${GTEST_DIR} 是 google 测试文件夹所在的位置。 在这些步骤之后,我在 ${GTEST_DIR}

中有一个 gtest-all.olibgtest.a

现在如何编译我的 Test.cpp 文件?我已经尝试过(按照相同说明中的建议)

g++ -isystem ${GTEST_DIR}/include -pthread Test.cpp libgtest.a -o test

但我得到错误

clang: error: no such file or directory: 'libgtest.a'

甚至添加

-L${GTEST_DIR}

似乎没有帮助。 我应该在脚本中包含什么(以及如何)?

奖金问题:也可以创建一个文件夹并在那里执行 cmake .. && make。这将创建(在 CMake 文件中)lib libgtest.alibgtest_main.a。这有什么不同?是出于兼容性原因吗?

尝试以下操作:

g++ -isystem ${GTEST_DIR}/include -L${GTEST_DIR} -lgtest -pthread Test.cpp -o test

关于构建 gtest 的多种方法,这里是 README 的相关部分:

Before settling on CMake, we have been providing hand-maintained build
projects/scripts for Visual Studio, Xcode, and Autotools.  While we
continue to provide them for convenience, they are not actively
maintained any more.  We highly recommend that you follow the
instructions in the previous two sections to integrate Google Test
with your existing build system.

这里的关键要点是,对于非常小的项目,您可以像之前那样手动编译所有内容,也可以使用 cmake;这仅取决于您对什么感到满意。对于大型项目,您应该集成到您自己的构建系统中。