c-如何将自定义*.so文件包含到CMAKE



我创建了自定义共享对象,其中有一个函数-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中将其列为任何其他库目标。

最新更新