我创建了自定义共享对象,其中有一个函数-void hello();
,它只打印";你好";。我现在正试图在另一个项目中使用SO,但我无法使用它(更有可能-我不知道如何使用(
test_lib.so
文件与我的main.c
文件相同。
我正试图将lib包含在我的CMakeLists.txt
中,如下所示:
cmake_minimum_required(VERSION 3.12)
project(test2 VERSION 1.0.0)
find_library(MYLIB test_lib.so)
add_executable(test main.c)
target_link_libraries(test MYLIB)
但是当我尝试在我的main.c上使用hello();
时,我得到了错误:
undefined reference to `hello'
只需在target_link_libraries
:中列出实际的库文件
target_link_libraries(test test_lib.so)
您也可以将库添加为IMPORTED
库目标,并设置其IMPORTED_LOCATION
属性。
然后您可以在target_link_libraries
中将其列为任何其他库目标。