无法使用.asm文件

时间:2019-12-30 00:26:26

标签: c assembly cmake

CLion上运行Linux,我一直在尝试使.asm文件正常工作。这就是我的测试项目的样子(在100%上运行Windows/Mac,只需要在.intel_syntax文件中添加.asm)。

安装了NASM程序集支持插件。

main.c:

#include <stdio.h>

extern long tes(long);

int main() {
    printf("%ld", tes(5));
    printf("Hello, World!\n");
    return 0;
}

tes.asm:

.text:

.global tes

tes:
    mov rax, edi
    ret

CMakeLists.txt:

cmake_minimum_required(VERSION 3.15)
project(Testt C)
enable_language(C ASM)

set(CMAKE_C_STANDARD 99)

set ( SOURCES 
        main.c 
        tes.asm)

add_executable(program  ${SOURCES} )

如何配置CLion以便将tes用作C中的方法?我期待tes(x) = x,但是不知何故,我的项目无法编译:

 ====================[ Build | program | Debug ]=================================
/snap/clion/99/bin/cmake/linux/bin/cmake --build /home/user/CLionProjects/Testt/cmake-build-debug --target program -- -j 4
make: *** No rule to make target 'program'.  Stop.

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您需要使用

enable_language(ASM_NASM)

不确定CMake规则是否可以识别.asm扩展名,在这种情况下,您可能必须添加

set_source_files_properties(${ASM_SOURCES} PROPERTIES LANGUAGE ASM_NASM)