Google Test Linking Error: File was built for archive which is not the architecture being linked (macOS)

Google Test Linking Error: File was built for archive which is not the architecture being linked (macOS)

我正在尝试让 Google 测试(他们的 C++ 单元测试框架)在我的 Mac 上运行,但我在尝试编译库时遇到问题。

以下命令运行很好:

export GTEST_DIR="path/to/g/test/"

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

ar -rv libgtest.a gtest-all.o

当尝试实际编译我的单元测试时,我收到一个链接错误 "libgtest.a: File was built for archive which is not the architecture being linked (x86/64)".

Mac 似乎不喜欢以下命令:

$ ar -rv libgtest.a gtest-all.o

用下面的命令替换此命令解决了我的问题:

$ libtool -static -o libgtest.a gtest-all.o

我写了一个简单的脚本来自动克隆 Google 测试库,然后构建并 link 它。所需要做的就是将此脚本添加到您的主项目目录,并赋予其执行权限(例如 运行 $ chmod 777 googleTestSetup.sh,然后是 $ ./googleTestSetup.sh

https://gist.github.com/eagi223/0ba30b0b36b18f4de07943d9228dd73a