黄冈做网站价格,网站建设的需求怎么写,wordpress 福利模板,珠海网站建设建站模板在作《剑指offer》中的单向链表的题目时#xff0c;需要一些常用到的操作链表的函数放在一个文件下#xff0c;我想把这些函数的声明都写在list.h文件中#xff0c;把这些函数的定义都写在list.cpp文件中#xff0c;这样就可以在测试文件test.cpp中调用list.cpp中定义的函数…在作《剑指offer》中的单向链表的题目时需要一些常用到的操作链表的函数放在一个文件下我想把这些函数的声明都写在list.h文件中把这些函数的定义都写在list.cpp文件中这样就可以在测试文件test.cpp中调用list.cpp中定义的函数或者我还想把有关l链表操作的函数封装成一个库安装到电脑中这个库可以被外部程序调用。
首先看一下动态链接库和静态链接库分别是什么
动态链接库是以.so结尾的文件静态链接库是以.a结尾的文件。
一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息入口代码由运行时加载在进程空间中的DLL提供称为动态链接库dynamic link library。
一种是LIB包含函数代码本身在编译时直接将代码加入程序当中称为静态链接库static link library。
所以无论是动态链接库还是静态链接库都会有lib文件
1.首先是安装链接库
cmake是一个编程项目管理工具。
首先在你的工程目录下创建 list.cpp,list.h, CMakeLists.txt文件并创建一个lib文件夹来盛放生成的链接库
然后是在CMakeLists.txt文件中添加如下语句
cmake_minimum_required(VERSION 3.5)
project(lib)
set(LIB_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
set(CMAKE_CXX_STANDARD 11)
set(LIST_SRC list.cpp)
ADD_LIBRARY(list SHARED ${LIST_SRC})
ADD_LIBRARY(list_static STATIC ${LIST_SRC})
INSTALL(TARGET list list_static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
INSTALL(FILES list.h DESTINATION include/list)
然后在终端操作安装动态和静态链接库
mkdir build
cd build
cmake DCMAKE_INSTALL_PREFIX/usr ../
make
sudo make install
如果安装成功那么就会显示如下信息
--install configuration
--installing: /usr/local/lib/liblist.so
--installing: /usr/local/lib/liblist.a
--Up-to-date: /usr/local/include/list/list/h
2.外部程序使用安装好的动态链接库
在一个新的工程目录下你创建了test.cpp, CMakeLists.txt文件在CMakeList.txt文件中写入如下语句
cmake_minimum_required(VERSION 3.5)
project(ListWithDynamic)
set(CMAKE_CXX_STANDARD 11)
include_directories(/usr/local/include/list)
add_executable(ListWithDynamic test.cpp)
target_link_libraries(ListWithDynamic /usr/local/lib/liblist.so)
对于这种我们自己编写安装的链接库我们在使用的时候首先需要将链接库的头文件包含进来就是这里的include_directories()函数实现这个功能然后还需要将目标文件就是这里的ListWithDynamic链接到liblist.so上就是这里的target_link_libraries()函数实现这个功能如果没有这个函数编辑器会提示错误“undefined reference to CreateListNode” 3.使用下载安装的第三方库和使用自己编写安装的库的一个在CMakeLists.txt的明显不同是
请查看另一篇文章https://mp.csdn.net/postedit/82380445