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

做特卖的网站上品折扣张家港手机网站制作

做特卖的网站上品折扣,张家港手机网站制作,济南的企业网站建设,在社保网站上怎么做员工的退费前言 在使用 cmake 交叉编译应该应用程序时,好像没有手动设置【链接脚本】,也能正常构建生成 Makefile,并且可以正常 Make 生成需要的 应用程序。 但是有些应用程序,需要手动指定【链接脚本】,比如修改链接地址&#…

前言

  • 在使用 cmake 交叉编译应该应用程序时,好像没有手动设置【链接脚本】,也能正常构建生成 Makefile,并且可以正常 Make 生成需要的 应用程序。

  • 但是有些应用程序,需要手动指定【链接脚本】,比如修改链接地址,这在 cmake 构建中如何操作呢?

  • 当前没有设置链接脚本,发现编译后的应用程序的入口地址为 0

如下: Entry point address: 0x0

readelf -h routingmanagerd
ELF Header:Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00Class:                             ELF64Data:                              2's complement, little endianVersion:                           1 (current)OS/ABI:                            UNIX - System VABI Version:                       0Type:                              DYN (Shared object file)Machine:                           AArch64Version:                           0x1Entry point address:               0x0Start of program headers:          64 (bytes into file)Start of section headers:          226912 (bytes into file)Flags:                             0x0Size of this header:               64 (bytes)Size of program headers:           56 (bytes)Number of program headers:         8Size of section headers:           64 (bytes)Number of section headers:         38Section header string table index: 37

了解 cmake

  • 默认 cmake 的构建操作只生成 Makefile,然后需要再执行 make 命令进行编译、链接。

  • 所以可以在 cmake 的构建文件中,增加【链接脚本】的选项

cmake 设置链接脚本路径

  • cmake 可以通过 set 命令轻松设置 环境变量,这里的操作是,在 cmake 文件中增加
set(LINK_SCRIPTS "-T/home/zhangsz/smart/adas/software/userapps/linker_scripts/aarch64/link.so.lds")
  • 说明:可以使用 set 在 cmake 中设置环境变量,环境变量名字可以自定义。如果环境变量存在,可以使用 ${LINK_SCRIPTS} 获取设置过的环境变量

  • 这里的操作是:设置环境变量 ${LINK_SCRIPTS} 为 指定的链接脚本的路径

  • -T/home/zhangsz/userapps/linker_scripts/aarch64/link.so.lds 这里的 -T 表示指定链接脚本,用于 gcc 的编译参数, 后面是 链接脚本的路径

cmake 应用程序生成

  • cmake 生成目标文件,默认使用: target_link_libraries,这里是动态链接,如下:

  • target_link_libraries(routingmanagerd ${VSOMEIP_NAME} ${Boost_LIBRARIES} ${DL_LIBRARY} ${DLT_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${LINK_SCRIPTS}) 中增加了刚才加入链接脚本的【环境变量】,这里是 ${LINK_SCRIPTS}

在这里插入图片描述

  • cmake 最终会把这些操作,环境变量,转换为 gcc 或者交叉编译 gcc 的 参数

编译验证

  • 编译的详细 LOG,发现 链接脚本设置成功了

在这里插入图片描述

  • cmake 后,再使用 make 进行编译,发现编译的应用程序,链接地址与指定的链接脚本的地址一致,说明 指定链接脚本的操作 设置成功了

  • 入口函数地址 Entry point address: 0x201000,链接脚本指定的地址

readelf -h routingmanagerd
ELF Header:Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00Class:                             ELF64Data:                              2's complement, little endianVersion:                           1 (current)OS/ABI:                            UNIX - System VABI Version:                       0Type:                              EXEC (Executable file)Machine:                           AArch64Version:                           0x1Entry point address:               0x201000Start of program headers:          64 (bytes into file)Start of section headers:          232208 (bytes into file)Flags:                             0x0Size of this header:               64 (bytes)Size of program headers:           56 (bytes)Number of program headers:         5Size of section headers:           64 (bytes)Number of section headers:         32Section header string table index: 31

如何查看详细的编译过程

  • cmake 配置文件中设置: set(CMAKE_VERBOSE_MAKEFILE ON)

  • make V=1 或者 VERBOSE=on 可以让编译的细节更多

  • make 编译时可以把串口的打印重定向到一个文件,这样查看这个编译信息文件,可能更方便

make VERBOSE=on 2>&1 | tee output_log.txt

小结

  • 由于平时使用 cmake 不多,大部分情况下可以手动编写 Makefile,然后使用 make 编译,不过 cmake 的使用,应该会然 构建编译更简单

  • 初步了解了 在 cmake 中设置与读取【环境变量】的操作,用于在 gcc 编译参数中增加 设置链接脚本

http://www.yayakq.cn/news/550037/

相关文章:

  • 网站更新和维护怎么做如何让本机做网站让内网访问
  • 帮人做彩票网站沧州1 1 网站建设
  • 请别人做网站的缺点免费dns二级域名
  • 软件开发工程师薪资水平北京债务优化公司
  • 重庆品牌网站建设怎么样百度电脑怎么用wordpress
  • 公司做网站推广有没有用网站开发怎么自动获取位置
  • 江苏品牌网站建设电话淘宝热搜关键词排行榜
  • 枞阳网站建设wordpress pdf阅读器
  • 南宁老牌网站建设公司网站404页面查询
  • 织梦手机网站教程视频教程昆明hph网站建设
  • 石家庄住房和城乡建设局官方网站现在淘客做网站还行吗
  • 难道做网站的工资都不高吗山东省建设厅招标网站首页
  • 深圳自定义网站开发软件开发培训机构前十
  • 嘉兴行业网站建设徐州做网站的公司有哪些
  • 手机网站的页面大小网站要备案吗
  • 郑州网站制作推广个人网站主题
  • 集团网站品牌建设特点要怎样建设网站
  • 最适合seo的网站源码机关事业单位网站建设
  • 西安西郊网站建设seo就业前景怎么样
  • 网站描文本链接怎么做怎么改变wordpress首页
  • 网站开发的合同履行地课程网站建设的设计报告
  • 网站创建人网络营销的网站分类有
  • c asp.net 做网站wordpress分类加密
  • 网站标题符号企查查在线查询法人
  • 营销型网站建设效果怎么做娱乐网站
  • 创建网站容易吗网站改版降权多久恢复
  • 电脑访问手机网站跳转湘潭网站外包公司
  • 虚拟机iis网站建设广告设计公司招聘信息
  • 面包屑导航的网站最好的汽车科技网站建设
  • 凯里做网站做视频网站流量费高吗