cmake 编译 nasm 文件

本文记录了在使用cmake编译nasm文件时遇到的头文件路径冲突及cmake编译过程中的问题。解决方案包括通过add_custom_command处理路径冲突,以及解决cmake对汇编文件的重复编译问题。内容涉及nasm的预编译参数和cmake的自定义编译步骤。
摘要由CSDN通过智能技术生成

最近在学习《操作系统真象还原》,在学习的过程考虑到文件可能会过程中会写的文件比较多,想要使用cmake来配置最基本的编译方案,来减少后期过程中,手动编译带来的麻烦。


由于没有现成的例子,网上好多的版本都是汇编和c的混合编译,生成的代码都是基于平台相关的运行文件,这些只要全部交给c来处理就行了。

需求:编译nasm files

过程中踩了好多坑,留下记录备忘。

1 . cmake 和 nasm 对于头文件路径表示的冲突。
在cmake中include_directories() 函数是可以添加头文件路径的,并且是以不含 / 符号结束,例如~/include。但是 nasm 严格要求 -I 参数添加的头文件路径是包含 反斜杠 这样就造成一种风格上的冲突,include_directories()添加的路径在变成汇编编译参数的时候是不包含/的,造成编译失败,最开始的地方显示找不到头文件。
解决方案:
add_compile_options(-I ${CMAKE_CURRENT_SOURCE_DIR}/include/ )
顾名思义:使用这个函数直接添加编译参数,在字符串中增加反斜杠,来避免冲突,虽然看着有点别扭,但是解决了问题。

相似例子stackoverflow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值