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
我正在尝试让 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