簡體   English   中英

無法使用 .asm 文件構建 CLion 項目

[英]Cannot build CLion project with .asm file

Linux上運行CLion ,我一直試圖讓 .asm 文件工作。 這就是我的測試項目的樣子(它在Windows/Mac100%工作,只需要在.asm文件中添加.intel_syntax )。

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

主文件:

#include <stdio.h>

extern long tes(long);

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

測試.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以便在C使用tes作為方法? 我期待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.

任何幫助表示贊賞!

你需要使用

enable_language(ASM_NASM)

不確定 CMake 規則是否會識別.asm擴展名,在這種情況下,您可能需要添加

set_source_files_properties(${ASM_SOURCES} PROPERTIES LANGUAGE ASM_NASM)

剛剛創建了這些文件,它們使用帶有 gcc 9 和 nasm 2.14 的 MKSYS MSYS 工作:

主文件

#include <stdio.h>

extern long test(long);

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

測試.asm

section text

global test

test:
    mov rax, 0
    ret

CMakeLists.txt

cmake_minimum_required(VERSION 3.15)
project(Test)
enable_language(ASM_NASM)

set(CMAKE_C_STANDARD 99)

set(ASM_SOURCES
     test.asm
)

set (SOURCES
     main.c 
     ${ASM_SOURCES}
)

set_source_files_properties(${ASM_SOURCES} PROPERTIES LANGUAGE ASM_NASM)

add_executable(program  ${SOURCES})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM