动态加载的库Cmake

时间:2019-03-09 16:45:13

标签: c cmake dynamic-loading

我正在尝试编写cmake规则,以在Linux上为C程序构建动态加载的库。我写了简短的CMakeLists:

cmake_minimum_required(VERSION 3.10.2)
project(main)

set(CMAKE_C_STANDARD 99)
add_library(myLib SHARED dogo.c)

add_executable(main main.c )
TARGET_LINK_LIBRARIES( main myLib)

dogo.c包含一个函数,该函数将两个整数相加。

int main(){
    void* handle = dlopen("libmyLib.so", RTLD_LAZY);
    if(!handle)
        printf("error xD");
    int (*add) (int a, int b);
    add = (int(*)(int a, int b))dlsym(handle,"add");
    int a = (*add)(2,3);
    printf("%d\n",a);
    return 0;
}

make无法完成,因为出现错误“对dlopen的引用未定义,与dlsym相同”。我包括了所有需要的东西。该如何解决?

0 个答案:

没有答案