gpt4 book ai didi

c++ - 缺少符号——但符号存在?

转载 作者:行者123 更新时间:2023-11-30 04:46:37 33 4
gpt4 key购买 nike

我正在尝试使用 googletest 编译单元测试目标。虽然它在一个项目中有效,但无法链接到另一个项目,我很难理解为什么。

CMake生成的link.txt:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -stdlib=libc++ -std=gnu++11 -g -Wl,-search_paths_first -Wl,-headerpad_max_install_names  CMakeFiles/runTests.dir/ATAppTests.cpp.o  -o runTests ../../src/targetLib.a ../../lib/libgtestd.a ../../lib/libgtest_maind.a ../../lib/libgmockd.a ../../lib/libgmock_maind.a ../../lib/libgmockd.a ../../lib/libgtestd.a 

运行该命令的结果:

Undefined symbols for architecture x86_64:
"testing::internal::MakeAndRegisterTestInfo(char const*, char const*, char const*, char const*, void const*, void (*)(), void (*)(), testing::internal::TestFactoryBase*)", referenced from:
___cxx_global_var_init in ATAppTests.cpp.o

但是,运行 nm 表明符号在那里:

 $ nm --demangle ../../lib/libgtestd.a | grep 'MakeAndRegister'
000000000000ebe0 T testing::internal::MakeAndRegisterTestInfo(char const*, char const*, char const*, char const*, testing::internal::CodeLocation, void const*, void (*)(), void (*)(), testing::internal::TestFactoryBase*)

我不确定从这里到哪里去!

最佳答案

事实证明,我正在使用的另一个项目中嵌入了一个旧的 gtest header ,它被取而代之。

https://github.com/meekrosoft/fff/blob/master/gtest/gtest.h

关于c++ - 缺少符号——但符号存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56656872/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com