C++ clang inline asm-未定义的符号

发布于 2025-01-21 15:25:50 字数 411 浏览 1 评论 0原文

我正在尝试从内联汇编代码访问全局变量,但是我会收到错误“未定义的符号:my_var”:

#include <iostream>

int my_var = 0;

__attribute((naked)) int Test()
{
    asm(".intel_syntax noprefix;"
        "mov eax, my_var;"
        "ret;"
        ".att_syntax;"
    );
}

int main()
{
    std::cout << Test() << std::endl;
}

我正在使用LLVM(Clang-CL)编译器的Visual Studio。我还尝试了_MY_VAR,但输出相同。使用AT&amp; t语法不是一个选择。

I'm trying to access a global variable from inline assembly code but I get error "undefined symbol: my_var ":

#include <iostream>

int my_var = 0;

__attribute((naked)) int Test()
{
    asm(".intel_syntax noprefix;"
        "mov eax, my_var;"
        "ret;"
        ".att_syntax;"
    );
}

int main()
{
    std::cout << Test() << std::endl;
}

I'm using visual studio with LLVM (Clang-cl) compiler. I also tried with _my_var but same output. Using at&t syntax is not an option.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文