如何解决在 cmake 中编译程序集.s文件
我正在使用 windriver 编译器处理嵌入式项目 根据编译器设计,obj 文件(crt0.o)具有起点(包含“main”)。 在我的项目中,我们编写了自己的汇编文件(crt0.s)。 现在我想将它编译成 crt0.o 并将其用于链接。 我尝试了以下方法,
'Insert Data Field
With ActiveSheet.Pivottables("ForwinPivottable").PivotFields("Gross Profit (EUR)")
.Orientation = xldatafield
.Position = 1
.Function = xlSum
.NumberFormat = "#,##0"
.Name = "GP (Eur) "
End With
'Insert Data Field
With ActiveSheet.Pivottables("ForwinPivottable").PivotFields("Export Chargeable Weight (kg)")
.Orientation = xldatafield
.Position = 1
.Function = xlSum
.NumberFormat = "#,##0"
.Name = "Total Charg. Weight "
End With
With ActiveSheet.Pivottables("ForwinPivottable").CalculatedFields
.Add "GP/kg (Eur)","= 'GP (Eur) '/ 'Total Charg. Weight '"
.PivotFields("GP/kg (Eur)").Orientation = xldatafield
End With
但是它不起作用。 crt0.s 文件没有被编译成 crt0.o 文件。链接器从默认编译器路径获取 crt0.o 文件。
我是否将 .s 文件正确传递给目标?
解决方法
如果您还没有为您的项目或其他汇编编译器之一(即 enable_language(ASM)
或 ASM_ATT
等)准备 ASM_MASM
。这必须在 project
之前完成{1}} 函数。
也不要使用file(GLOB)
,而是使用target_sources
。
我是这样做的:
enable_lanuage(ASM)
project(${METADATA_NAME})
target_sources(${PROJECT_NAME}
PRIVATE
#
# assembler
#
${CMAKE_CURRENT_LIST_DIR}/_start.s
#
# c++
#
${CMAKE_CURRENT_LIST_DIR}/Main.cpp
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。