定位重构 发表于 2024-9-11 19:41

cmake mingw 汇编 C++ 求助

在C++代码中调用 汇编函数

爱飞的猫 发表于 2024-9-11 22:10

错误信息是?

定位重构 发表于 2024-9-11 22:12

爱飞的猫 发表于 2024-9-11 22:10
错误信息是?

cmd.exe /C "cd . && E:\IDE\CLION2~1.4\bin\mingw\bin\G__~1.EXE -O3 -DNDEBUGCMakeFiles/asm_t.dir/main.cpp.obj -o asm_t.exe -Wl,--out-implib,libasm_t.dll.a -Wl,--major-image-version,0,--minor-image-version,0-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
E:\IDE\CLion 2023.3.4\bin\mingw\bin/ld.exe: CMakeFiles/asm_t.dir/main.cpp.obj:main.cpp:(.text.startup+0xc): undefined reference to `my_function'

爱飞的猫 发表于 2024-9-11 22:22

本帖最后由 爱飞的猫 于 2024-9-11 22:24 编辑

没有遇到你的问题,但我的 CMake 配置和你的不一样,你可以对比看看?

CMake 配置文件:

```
cmake_minimum_required(VERSION 3.29)
project(asm_fun LANGUAGES CXX ASM)

set(CMAKE_CXX_STANDARD 20)

add_executable(asm_fun main.cpp hello.s)
```

`hello.s` 文件:

```asm
.intel_syntax noprefix
.global add_numbers

add_numbers:
    mov rax, rcx
    add rax, rdx
    ret
```

`main.cpp` 文件:

```cpp
#include <iostream>

extern "C" int add_numbers(int x, int y);

int main() {
    auto value = add_numbers(1, 2);
    std::cout << "value = " << value << std::endl;
    return 0;
}
```

定位重构 发表于 2024-9-11 22:31

爱飞的猫 发表于 2024-9-11 22:22
没有遇到你的问题,但我的 CMake 配置和你的不一样,你可以对比看看?

CMake 配置文件:


可行了 谢谢大佬

爱飞的猫 发表于 2024-9-11 22:33

定位重构 发表于 2024-9-11 22:31
可行了 谢谢大佬

你是改了 CMAKE 配置文件后就可用了吗

定位重构 发表于 2024-9-12 12:16

爱飞的猫 发表于 2024-9-11 22:33
你是改了 CMAKE 配置文件后就可用了吗

是的,改了ASM
页: [1]
查看完整版本: cmake mingw 汇编 C++ 求助