【问题标题】:How to include custom *.so file to CMAKE? [duplicate]如何将自定义 *.so 文件包含到 CMAKE? [复制]
【发布时间】:2020-07-13 16:55:50
【问题描述】:

我创建了自定义共享对象,其中包含一个函数 - void hello();,它只打印“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'

【问题讨论】:

标签: c cmake shared-libraries


【解决方案1】:

只列出target_link_libraries中的实际库文件:

target_link_libraries(test test_lib.so)

您还可以将add the library 用作IMPORTED 库目标,并将set 用作其IMPORTED_LOCATION 属性。

然后你可以在target_link_libraries 中将它列为任何其他库目标。

【讨论】:

    猜你喜欢
    • 2021-05-29
    • 2021-04-29
    • 2023-03-30
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    相关资源
    最近更新 更多