为什么CMake在构建静态库时会忽略汇编文件?

时间:2014-05-04 02:52:11

标签: assembly cmake static-libraries

我已经设定

set(CAN_USE_ASSEMBLER TRUE)

它根本没有帮助。我尝试使用如下命令创建静态库:

add_library(${CMAKE_PROJECT_NAME} STATIC ../PropWare ../spi ../spi_as.S ../sd)

其中没有扩展名的文件是C ++或C文件,而.S文件是程序集。但是当我运行cmake和make时,它会编译C / C ++源代码并忽略汇编文件......没有警告,没有错误......只是跳过它。

我喜欢任何想法。 github上提供了完整的源代码(请注意:此链接指向cmake分支,其他所有链接均应被忽略)。第一行位于this file,第二行位于this file

谢谢, 大卫

3 个答案:

答案 0 :(得分:6)

终于找到了它。而不是

set(CAN_USE_ASSEMBLER TRUE)

我应该用

enable_language(ASM)

答案 1 :(得分:2)

请注意,您也可以在 project() command 中启用 ASM。例如:

project(abc
        LANGUAGES C CXX ASM)

答案 2 :(得分:0)

使用gcc时,可以使用C编译器编译.S文件(不需要显式调用asm)。可以告诉CMake使用

这样做
set_property(SOURCE <myfile>.S PROPERTY LANGUAGE C)

为每个.S个文件。然后他们编译成......