googletest
googletest copied to clipboard
[Bug]: undefined reference to `typeinfo for testing::Test' ,only link by gtest, instead of GTest::gtest
Describe the issue
awe@test_lib$ uname -a
Linux fedora 6.13.5-100.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Feb 27 15:10:07 UTC 2025 x86_64 GNU/Linux
awe@test_lib$ sudo dnf install gtest-devel
[sudo] awe çå¯ç ï¼
䏿¬¡å
æ°æ®è¿ææ£æ¥ï¼1:31:22 åï¼æ§è¡äº 2025å¹´03æ16æ¥ æææ¥ 20æ¶06å46ç§ã
软件å
gtest-devel-1.14.0-4.fc40.x86_64 å·²å®è£
ã
ä¾èµå
³ç³»è§£å³ã
æ éä»»ä½å¤çã
宿¯ï¼
/CMakeLists.txt
cmake_minimum_required(VERSION 3.20)
project(test_lib)
set(CMAKE_PREFIX_PATH /home/awe/Desktop/dev/install/)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
link_libraries(pthread)
add_link_options(-finput-charset=Latin1 -fexec-charset=UTF-8)
find_package(GTest CONFIG REQUIRED)
find_package(spdlog CONFIG REQUIRED)
enable_testing()
add_subdirectory(botan)
botan/CMakeLists.txt
find_package(leveldb CONFIG REQUIRED)
find_package(Botan CONFIG REQUIRED)
#include(GoogleTest)
#enable_testing()
link_libraries(Botan::Botan GTest::gtest GTest::gtest_main)
add_executable(botan_main main.cpp)
#gtest_discover_tests(botan_main)
main.cpp
#include <gtest/gtest.h>
TEST(TestA,name) {
ASSERT_TRUE(true);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv); // åå§å Google Test
return RUN_ALL_TESTS(); // è¿è¡æææµè¯ç¨ä¾
}
====================[ æå»º | botan_main | debug ]================================= /home/awe/Downloads/clion-2024.3/bin/cmake/linux/x64/bin/cmake --build /home/awe/Desktop/clion/test_lib/cmake-build-debug --target botan_main -j 6 -v Change Dir: '/home/awe/Desktop/clion/test_lib/cmake-build-debug'
Run Build Command(s): /home/awe/Downloads/clion-2024.3/bin/ninja/linux/x64/ninja -v -j 6 botan_main [1/1] : && /usr/lib64/ccache/c++ -g -finput-charset=Latin1 -fexec-charset=UTF-8 -fstack-protector -m64 -pthread botan/CMakeFiles/botan_main.dir/main.cpp.o -o botan/botan_main -Wl,-rpath,/home/awe/Desktop/dev/install/lib -lpthread /home/awe/Desktop/dev/install/lib/libbotan-3.so.7 /home/awe/Desktop/dev/install/lib64/libgtestd.a /home/awe/Desktop/dev/install/lib64/libgtest_maind.a /home/awe/Desktop/dev/install/lib64/libgtestd.a && : FAILED: botan/botan_main : && /usr/lib64/ccache/c++ -g -finput-charset=Latin1 -fexec-charset=UTF-8 -fstack-protector -m64 -pthread botan/CMakeFiles/botan_main.dir/main.cpp.o -o botan/botan_main -Wl,-rpath,/home/awe/Desktop/dev/install/lib -lpthread /home/awe/Desktop/dev/install/lib/libbotan-3.so.7 /home/awe/Desktop/dev/install/lib64/libgtestd.a /home/awe/Desktop/dev/install/lib64/libgtest_maind.a /home/awe/Desktop/dev/install/lib64/libgtestd.a && : /usr/bin/ld: botan/CMakeFiles/botan_main.dir/main.cpp.o:(.rodata._ZTI16AES256CipherTest[_ZTI16AES256CipherTest]+0x10): undefined reference to `typeinfo for testing::Test' collect2: é误ï¼ld è¿å 1 ninja: build stopped: subcommand failed.
but when use link_libraries(Botan::Botan gtest),is running successï¼and why ? :
/home/awe/Desktop/clion/test_lib/cmake-build-debug/botan/botan_main
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from TestA
[ RUN ] TestA.name
[ OK ] TestA.name (0 ms)
[----------] 1 test from TestA (0 ms total)
[----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (0 ms total) [ PASSED ] 1 test.
Steps to reproduce the problem
link gtest vs GTest::test
What version of GoogleTest are you using?
awe@test_lib$ sudo dnf install gtest-devel [sudo] awe çå¯ç ï¼ ä¸æ¬¡å æ°æ®è¿ææ£æ¥ï¼1:31:22 åï¼æ§è¡äº 2025å¹´03æ16æ¥ æææ¥ 20æ¶06å46ç§ã 软件å gtest-devel-1.14.0-4.fc40.x86_64 å·²å®è£ ã ä¾èµå ³ç³»è§£å³ã æ éä»»ä½å¤çã 宿¯ï¼
What operating system and version are you using?
awe@test_lib$ uname -a
Linux fedora 6.13.5-100.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Feb 27 15:10:07 UTC 2025 x86_64 GNU/Linux
What compiler and version are you using?
awe@test_lib$ gcc --version gcc (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3) Copyright © 2024 Free Software Foundation, Inc. æ¬ç¨åºæ¯èªç±è½¯ä»¶ï¼è¯·åçæºä»£ç ççæå£°æãæ¬è½¯ä»¶æ²¡æä»»ä½æ ä¿ï¼ å æ¬æ²¡æééæ§åæä¸ä¸ç¨ç®çä¸çéç¨æ§æ ä¿ã
What build system are you using?
awe@test_lib$ cmake --version cmake version 3.30.7 awe@test_lib$ ninja --version 1.12.1
Additional context
Very confused