建立一个静态库和动态库,提供HelloFunc 函数供其他程序编程使用,HelloFunc向终端输出Hello World 字符串。 安装头文件与共享库。 编写一个程序去使用构建的共享库。 二、准备工作 (1)建立 t3 目录,用于存放本节涉及到的工程。 mkdir t3 (2)建立共享库。 cd t3 mkdir lib (3)在 t3 目录下建立CMakeLists.txt...
1.静态库与动态库构建的实例(并上传到系统中,路径为:/usr/lib和/usr/unclude/hello) 1)在空的项目建立build文件夹(空的)和CMakeLists.txt,具体的内容如下: ①CMakeLists.txt 1 2 PROJECT(HELLOLIB) ADD_SUBDIRECTORY(lib) 2)在空的项目构建lib文件夹 3)在lib文件夹里面加hello.c,hello.h和CMakeLists....
1)第一个参数为库的名字,不需要写全 libhello.so ,只需要填写 hello 即可, cmake 系统会自动为你生成libhello.X。 2)类型有三种 : SHARED ,动态库 STATIC ,静态库 MODULE ,在使用 dyld 的系统有效,如果不支持 dyld ,则被当作 SHARED 对待。 3)EXCLUDE_FROM_ALL 参数的意思是这个库不会被默认构建,除非...
编译完,在lib目录下生成了librice.a这个静态库。 在上面的CMakeLists.txt中,多了一个指令ADD_LIBRARY: 根据ADD_LIBRARY指令的描述,在上面的例子中,很清楚的理解是生成静态库的操作。 那么将上面的ADD_LIBRARY(rice STATICLIBRICESRC)替换成ADDLIBRARY(riceSHARED{LIBRICE_SRC})编译生成的就是动态库。 安装共享库...
编译静态库:静态库文件名应与动态库一致,仅后缀不同。使用ADD_LIBRARY指令添加静态库时,若在动态库编译基础上执行,静态库构建失败。修改为hello_static,构建libhello_static.a静态库。通过SET_TARGET_PROPERTIES指令设置输出名称、版本号和API版本,实现同时生成libhello.so和libhello.a库。动态库版本号...
1,建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc 向终端输出Hello World字符串。 2,安装头文件与共享库。 3, 编写一个程序使用创建的共享库(静态库和动态库)。 cd /home/ccj/CMakeDemo mkdir t3 cd /backup/cmake/t3
五、静态库与动态库构建 读者云,太能罗唆了,一个Hello World就折腾了两个大节。OK,从本节开始,我们不再折腾Hello World了,我们来折腾Hello World的共享库。 本节的任务: 1、建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc向终端输出Hello World字符串。
《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX 《CMake实践》笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 五、静态库与动态库构建 读者云,太能罗唆了,一个H
一、编译共享库: ADD_LIBRARY(hello SHARED ${SHARED_LIBRARY}) 二、添加静态库: ADD_LIBRARY(hello STATIC ${STATIC_LIBRARY}) 因为默认规则是不能有相同名字的共享库与静态库,所以当生成静态库的时候(so后缀),共享库会被删除,因为只能允许一个名字存在,相同名字的会被替代(hello),所以需要通过SET_TARGET_PROPE...
STATIC:用于创建静态库,即编译文件的打包存档,以便在连接其他目标时使用。 SHARED:用于创建动态库,即可以动态链接,并在运行时加载的库。 OBJECT:可将给定add_library的列表中的源码编译到目标文件,不将它们归档到静态库中,也不能将它们链接到共享对象中。 MODULE:又名DSO组。与SHARED库不同,它们不链接到项目中的任...