当前位置: 首页 > wzjs >正文

北京哪些做网站的公司好新郑网络推广公司

北京哪些做网站的公司好,新郑网络推广公司,互动对战平台,2023房地产最新消息一:动态库 接下来我们简单的讲解下动态库的建立和使用:在后面的项目的开发过程中,我们使用第三方库或者我们跑这个项目的时候我们总会看到一些.so的文件,这些就是所谓的动态库,里面的内容就是编译后的源文件,是程序运行时被加载和…

一:动态库

接下来我们简单的讲解下动态库的建立和使用:在后面的项目的开发过程中,我们使用第三方库或者我们跑这个项目的时候我们总会看到一些.so的文件,这些就是所谓的动态库,里面的内容就是编译后的源文件,是程序运行时被加载和链接的代码库。并且可以独立更新,且因为可以被多个程序共享同一个动态库,所以动态库也被成为共享库。

还是那个例子,我们直接把cpp文件编译成.so文件:

#行注释
#[[块注
释]]
cmake_minimum_required(VERSION 3.0)#指定最低cmake版本的命令
project("cmake_learn")#定义工程名称
#--------------------------------------------------------------------------------
# aux_source_directory(src SRC_LIST)
file(GLOB_RECURSE SRC_LIST"src/*.cpp"
)
include_directories(./include)
message("SRC_LIST is " ${SRC_LIST})
#生成静态库/动态库
add_library(MyShare SHARED ${SRC_LIST})
#通过set函数设置编译器的版本
set(CMAKE_CXX_STANDARD 11)#增加c++11的标准 CMAKE_CXX_STANDARD是内置变量 所以可以在cmake的时候直接通过参数进行指定 cmake /path/to/cmakelists.txt -DCMAKE_CXX_STANDARD=11

我们借用上一节提到的file方式找到所有的源文件后,将源文件通过add_library来生成一个动态库名字为MyShare。

# PUBLIC:在public后面的库会被Link到前面的target中,并且里面的符号也会被导出,提供给第三方使用
# PRIVATE:在private后面链接的库只能被link前面的库中,并且被终结。第三方不能感知你调用啥库
# INTERFACE:在interface后面引入的库不会被链接到前面的库中,只会导出符号#动态库的链接具体传递性
# 如果各个动态库之间没有依赖的关系,无需做任何设置,PUBLIC,PRIVATE,INTRERFACE没有啥区别,一般使用默认的PUBLIC即可。
#如果动态库A链接了动态库B,C动态库D链接了动态库A,此时动态库D相当于也链接了动态库B,并可以使用动态库B,C中定义的方法。
# target_link_libraries(A B C)
# target_link_libraries(D A)

当我们编译了一个动态库之后我们可以尝试链接动态库,在次之前,我们可以把除了main.cpp之外的源文件都删除。

#行注释
#[[块注
释]]
cmake_minimum_required(VERSION 3.0)#指定最低cmake版本的命令
project("cmake_learn")#定义工程名称
#--------------------------------------------------------------------------------
# aux_source_directory(src SRC_LIST)
file(GLOB_RECURSE SRC_LIST"src/*.cpp"
)
include_directories(./include)
message("SRC_LIST is " ${SRC_LIST})
#生成静态库/动态库
# add_library(MyShare SHARED ${SRC_LIST})
#链接动态库的路径
link_directories(./build/)
link_libraries(MyShare)
add_executable(MyShare_lession2 ./main.cpp)#定义工程生成一个可执行文件
target_link_libraries(MyShare_lession2 PRIVATE MyShare)
#通过set函数设置编译器的版本
set(CMAKE_CXX_STANDARD 11)#增加c++11的标准 CMAKE_CXX_STANDARD是内置变量 所以可以在cmake的时候直接通过参数进行指定 cmake /path/to/cmakelists.txt -DCMAKE_CXX_STANDARD=11

这样我们就能编译并且链接上动态库了。

二:静态库

        在动态库中我们使用add_library(MyShare SHARED ${SRC_LIST})来生成动态库,那么我们把SHARED替换成STATIC就是生成静态库了。ok,我们试试:

#行注释
#[[块注
释]]
cmake_minimum_required(VERSION 3.0)#指定最低cmake版本的命令
project("cmake_learn")#定义工程名称
#--------------------------------------------------------------------------------
# aux_source_directory(src SRC_LIST)
file(GLOB_RECURSE SRC_LIST"src/*.cpp"
)
include_directories(./include)
message("SRC_LIST is " ${SRC_LIST})
#生成静态库/动态库
add_library(MyStatic STATIC ${SRC_LIST})
#通过set函数设置编译器的版本
set(CMAKE_CXX_STANDARD 11)#增加c++11的标准 CMAKE_CXX_STANDARD是内置变量 所以可以在cmake的时候直接通过参数进行指定 cmake /path/to/cmakelists.txt -DCMAKE_CXX_STANDARD=11

执行编译后,我们发现build目录下多了一个libMyStatic.a文件,这个.a的文件就是静态库。那么同样的,我们链接/使用静态库的方式也和动态库一样,只是库的名称和方式不一样:

#行注释
#[[块注
释]]
cmake_minimum_required(VERSION 3.0)#指定最低cmake版本的命令
project("cmake_learn")#定义工程名称
#--------------------------------------------------------------------------------
# aux_source_directory(src SRC_LIST)
file(GLOB_RECURSE SRC_LIST"src/*.cpp"
)
include_directories(./include)
message("SRC_LIST is " ${SRC_LIST})
link_directories(./build/)
link_libraries(MyStatic)
add_executable(MyStatic_lession2 ./main.cpp)
target_link_directories(MyStatic_lession2 PRIVATE MyStatic)
#通过set函数设置编译器的版本
set(CMAKE_CXX_STANDARD 11)#增加c++11的标准 CMAKE_CXX_STANDARD是内置变量 所以可以在cmake的时候直接通过参数进行指定 cmake /path/to/cmakelists.txt -DCMAKE_CXX_STANDARD=11

按上述内容写完cmakelists.txt后,执行cmake 最后会生成一个MyStatic_lession2 可执行文件,执行即可。

http://www.dtcms.com/wzjs/328003.html

相关文章:

  • 淮南微信网站建设爱站网长尾关键词挖掘工具电脑版
  • 网站交互主要做什么的专业搜索引擎seo服务商
  • 做网站空间重要还是程序重要河池网站seo
  • 用织梦做的网站一般后台百度快速排名用是
  • 做网站定制开发的公司哪家好网店搜索引擎优化的方法
  • 网站建设 技术支持 阿里鹤壁seo推广
  • 网页开发和网站开发营销型网站优化
  • 做网站用源码荆门网站seo
  • 做最便宜的网站建设怎么在百度制作自己的网站
  • 宁波网站建设信任荣盛网络seo搜索引擎优化的内容
  • 找网站百度推广网址是多少
  • 做整形网站多少钱百度seo排名优化助手
  • wordpress demo数据西安网站seo哪家公司好
  • 做网站公司关键词深圳网站seo哪家快
  • 手机网站开发 c网络营销与市场营销的区别
  • 丹东 建设集团 招聘信息网站百度经验悬赏令
  • 用html5做的静态网站短视频剪辑培训班速成
  • 建设网站模块需要哪些网站优化策略
  • 广州网站建设网络推广市场推广方案模板
  • 北京网站设计制作关键词优化微信小程序开发推广荨麻疹怎么治疗能除根
  • 自建网站该页无法显示怎么制作自己的个人网站
  • wordpress英文单词不显示完整seo推广服务
  • 怎么自己做投票网站自己如何注册一个网站
  • 保定企业免费建站河北网站优化公司
  • 域名网站备案百度权重高的网站有哪些
  • 宝塔面板配置wordpressseo要点
  • java怎么做视频网站近日发生的重大新闻
  • 做视频网站可行吗网站建设山东聚搜网络
  • 做携程怎样的网站抚州seo外包
  • 网站设计建设合同大数据网站