【发布时间】:2020-05-12 14:25:53
【问题描述】:
我一直在尝试解决这个问题,但似乎无法让它发挥作用。我已经检查了一堆帖子。
我有一个静态库 libRuntime.a,生成如下:
cmake_minimum_required(VERSION 3.15)
project(Runtime)
set(CMAKE_CXX_STANDARD 17)
add_library(Runtime library.cpp)
find_library(GC gc)
message(${GC})
target_link_libraries(Runtime PUBLIC ${GC})
library.cpp 使用 Boehm GC,这就是为什么我还将它与我的 Runtime 目标链接。
现在,我想从我的 libRuntime.a 中调用函数,所以我有以下其他 CMake 项目:
cmake_minimum_required(VERSION 3.15)
project(test)
set(CMAKE_CXX_STANDARD 17)
add_executable(test main.cpp)
find_library(TESTLIB Runtime lib)
message(${TESTLIB})
target_link_libraries(test ${TESTLIB})
我已将 library.h 粘贴到项目中,并将 libRuntime.a 粘贴到名为 lib 的目录中,因此定义已知并找到库。从我的运行时库调用函数现在给了我:
/path.../Scheme-Compiler/Runtime/library.cpp:12: undefined reference to `GC_init'
/usr/bin/ld: ../lib/libRuntime.a(library.cpp.o): in function `alloc_atom':
提前致谢
【问题讨论】:
标签: c++ cmake linker static-libraries