Linux系统动态链接库和静态链接库CMake的使用方法 | 您所在的位置:网站首页 › cmake 引用动态库 › Linux系统动态链接库和静态链接库CMake的使用方法 |
基于2016华为精英挑战赛第三方库使用方法的总结 在寻找过特定子集点的最小路径问题,在数学上可以表示为求解满足约束问题的整数规划问题,求解整数规划问题高效率的第三方库可供使用,如lpsolve、glpk,lingo等。以下介绍基于lpsolve库的应用。lpsolve的使用将会单独介绍。 lpsolve简介lp_solve库版权为LGPL. Lesser General Public Licence,LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码,这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。适合那些用于非 GPL 或非开源产品的开源类库或框架。 GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。 规则条款: 如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。(引用或修改LGPL的代码及其衍生也必须使用LGPL开源,源于闭源的代码不需要开源)。 因此LGPL协议的开源代码很适合作为第三方类库被商业软件直接引用,但不适合希望以开源代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。 lpsolve 可以求解线性规划,整数规划,混合整数规划等优化问题。
lpsolve有Windows,Linux。ios,MATLAB等环境下的版本。
linux版本有以下文件
Linux系统使用主要在与Cmake文件的使用,当然也可以手动编译。 #CMakeLists.txt# CMake 最低版本号要求cmake_minimum_required(VERSION 2.8)# 项目信息project(future_net)# include路径include_directories(${PROJECT_SOURCE_DIR}/lib)# 把 第三方 库 的 .a 文件和 .h 文件放到 代码的 lib 文件夹link_directories(${PROJECT_SOURCE_DIR}/lib)# 设置可执行文件生成路径set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../bin)# 生成debug版本SET(CMAKE_BUILD_TYPE "Release") SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")# 查找当前目录下的所有源文件# 并将名称保存到 DIR_LIB_SRCS 变量aux_source_directory(. DIR_SRCS)# 指定生成目标 add_executable(future_net ${DIR_SRCS})#下面的 libxxx 是 第三方库 的名字:target_link_libraries(future_net libxxx)# 其他系统库,如果链接失败也一起链接:TARGET_LINK_LIBRARIES(future_net dl)TARGET_LINK_LIBRARIES(future_net pthread)华为提供了一键式编译、链接、打包的执行脚本batch.sh,只需要在路径下执行 sh batch.sh 即可
|
CopyRight 2018-2019 实验室设备网 版权所有 |