
如何使用cmake生成基于静态库的动态链接库
2019-03-12 17:01:43
微信公开课小程序热门讨论「如何使用cmake生成基于静态库的动态链接库」最新回复-在工程搭建时,可能会有将静态库链接成动态库的需求,如出于代码保护的角度,某些模块会发布.a扩展名的静态库,我们要将多个这样的静态库链接成一个动态库。但与直接link目标文件不同的是,ld以默认参数执行时,并把静态库中没有用到的函数过滤掉,导致生成的so并未包含所要的函数,因此要加上wholearchive参数,以保证所有的函数都包含在生成的so中。在使用cmake时,CMakeLists.txt的写法如下:add_library(${MODULE_NAME}SHARED${CMAKE_SOURCE_DIR}/builttime.c#要生成一个so,至少要包含一个源文件,实在没有可以把库的编译时间戳打到这儿。)target_link_libraries(${MODULE_NAME}${${MODULE_NAME}_EXTRA_LDFLAGS}Wl,wholearchive#告诉编译器,从这里开始,所有的库的内容都包含到so中${LOCAL_MODULES}#可以是以源代码生成的静态库${PREBUILT_MODULES}#可以是预先生成的静态库Wl,nowholearchive#告诉编译器,从这里开始,以后的库的内容不用都包含到so中)
在工程搭建时,可能会有将静态库链接成动态库的需求,如出于代码保护的角度,某些模块会发布.a扩展名的静态库,我们要将多个这样的静态库链接成一个动态库。但与直接link目标文件不同的是,ld以默认参数执行时,并把静态库中没有用到的函数过滤掉,导致生成的so并未包含所要的函数,因此要加上--whole-archive参数,以保证所有的函数都包含在生成的so中。在使用cmake时,CMakeLists.txt的写法如下:add_library(${MODULE_NAME}SHARED${CMAKE_SOURCE_DIR}/builttime.c#要生成一个so,至少要包含一个源文件,实在没有可以把库的编译时间戳打到这儿。)target_link_libraries(${MODULE_NAME}${${MODULE_NAME}_EXTRA_LDFLAGS}-Wl,--whole-archive#告诉编译器,从这里开始,所有的库的内容都包含到so中${LOCAL_MODULES}#可以是以源代码生成的静态库${PREBUILT_MODULES}#可以是预先生成的静态库-Wl,--no-whole-archive#告诉编译器,从这里开始,以后的库的内容不用都包含到so中)本回答被提问者和网友采纳 更多有关「如何使用cmake生成基于静态库的动态链接库」的疑问请扫码关注微信公开课+小程序!
在工程搭建时,可能会有将静态库链接成动态库的需求,如出于代码保护的角度,某些模块会发布.a扩展名的静态库,我们要将多个这样的静态库链接成一个动态库。但与直接link目标文件不同的是,ld以默认参数执行时,并把静态库中没有用到的函数过滤掉,导致生成的so并未包含所要的函数,因此要加上--whole-archive参数,以保证所有的函数都包含在生成的so中。在使用cmake时,CMakeLists.txt的写法如下:add_library(${MODULE_NAME}SHARED${CMAKE_SOURCE_DIR}/builttime.c#要生成一个so,至少要包含一个源文件,实在没有可以把库的编译时间戳打到这儿。)target_link_libraries(${MODULE_NAME}${${MODULE_NAME}_EXTRA_LDFLAGS}-Wl,--whole-archive#告诉编译器,从这里开始,所有的库的内容都包含到so中${LOCAL_MODULES}#可以是以源代码生成的静态库${PREBUILT_MODULES}#可以是预先生成的静态库-Wl,--no-whole-archive#告诉编译器,从这里开始,以后的库的内容不用都包含到so中)本回答被提问者和网友采纳 更多有关「如何使用cmake生成基于静态库的动态链接库」的疑问请扫码关注微信公开课+小程序!
标签:微信公开课,小程序

「如何使用cmake生成基于静态库的动态链接库」热议话题订阅
方法1:微信扫描微信公开课小程序码即可订阅热议话题「如何使用cmake生成基于静态库的动态链接库」
方法2:微信搜索微信公开课小程序名称进入,即可订阅热议话题「如何使用cmake生成基于静态库的动态链接库」
方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热议话题「如何使用cmake生成基于静态库的动态链接库」
微信公开课小程序热议话题「如何使用cmake生成基于静态库的动态链接库」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
微信公开课热议话题「如何使用cmake生成基于静态库的动态链接库」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。
微信公开课小程序
更新时间:2019-03-12 17:01:43
>
__methodCallerx27;ofundefined
>-404011cloudfunctionexecutionerror
>,请补充选择商家自营-预付卡销售-发行方类目,并在基础信息处申请该类目,通过
>:host在模拟器中显示无效
>:请在小程序服务页面上架正式(非测试)内容或商品后重新提交审核
>.net 微信小程序 上传图片
>'setTimeout'的问题
>‘三朵里熙SPA主题减压空间’为什么搜索关键词‘三朵里‘搜不到
>‘扫普通链接二维码打开小程序‘中设置为体验版,扫码打开是线上版本
>“cloudfunctions**indexjs”gitignore
>“NO ULINK DEVICE FOUND”是怎么回事
>“万马掌上校园”的类目审核
>“上线了”公司开发的微信小程序怎么样?
>“产品是否一定需要条形码”
>