[英]Cannot build CLion project with .asm file
在Linux
上運行CLion
,我一直試圖讓 .asm 文件工作。 這就是我的測試項目的樣子(它在Windows/Mac
上100%
工作,只需要在.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;
}
section text
global test
test:
mov rax, 0
ret
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.