cmake SHARED
时间: 2023-11-12 10:04:16 浏览: 34
在CMake中,使用add_library命令可以创建一个库。当指定库的类型为SHARED时,就会创建一个动态库(也称为共享库)。动态库是一种在程序运行时加载的库,它可以被多个程序共享,从而节省内存空间。使用动态库的好处是,当库的代码发生变化时,只需要重新编译库本身,而不需要重新编译使用该库的程序。在使用add_library命令时,可以使用SHARED关键字来指定库的类型为动态库。例如,add_library(hello_library SHARED src/Hello.cpp)就会创建一个名为hello_library的动态库。
相关问题
CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS是CMake的一个变量,用来设置构建共享库时传递给链接器的额外标志。可以通过set命令来设置该变量的值,例如:
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-rpath,/usr/local/lib")
这个命令将会把"-Wl,-rpath,/usr/local/lib"这个参数传递给链接器,告诉它到/usr/local/lib目录下去查找共享库。
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic")
这两行命令用于设置 CMake 的编译选项和链接选项。
第一行命令 `SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")` 将 `-fPIC` 选项添加到 C 语言编译器的选项中。这个选项告诉编译器生成位置无关代码,这对于动态链接库是必需的。
第二行命令 `SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic")` 将 `-Wl,-Bsymbolic` 选项添加到链接器的选项中。这个选项告诉链接器在处理符号时使用符号版本控制,这对于动态链接库也是必需的。
这两个选项是编译和链接 JNI 库时常用的选项,但具体的选项可能因操作系统和编译器而异。你可以根据需要对这些选项进行调整,以符合你的编译和链接环境。
希望这可以帮助你理解这两行命令的作用。