C++ 叮当声——”;“未找到符号”;链接时
我正试图用clang编译此源代码:C++ 叮当声——”;“未找到符号”;链接时,c++,c,clang,C++,C,Clang,我正试图用clang编译此源代码: extern "C" void __declspec(dllexport) TEST(int num) { return; } 问题是,在链接上,clang报告“无法导出\u测试:找不到符号” 然而,我找不到一种方法来防止叮当声弄坏名字 我一直在读到这是一个叮当响的错误,但很难相信他们现在还没有修复它 有什么想法吗?按clang生成的程序集文件的.drectve部分的内容包含: .section .drectve,"r" .ascii " -expo
extern "C" void __declspec(dllexport) TEST(int num)
{
return;
}
问题是,在链接上,clang报告“无法导出\u测试:找不到符号”
然而,我找不到一种方法来防止叮当声弄坏名字
我一直在读到这是一个叮当响的错误,但很难相信他们现在还没有修复它
有什么想法吗?按clang生成的程序集文件的
.drectve
部分的内容包含:
.section .drectve,"r"
.ascii " -export:_TEST"
虽然gcc本应如此:
.section .drectve,"r"
.ascii " -export:TEST"
您可以通过删除\uu declspec(dllexport)
并创建一个文件file.s
,其中包含要导出的符号,如下所示:
.section .drectve,"r"
# list of symbols you want to export
.ascii " -export:TEST"
在末尾保留一条空行,此处不显示
如果要导出符号,请添加.ascii“-export:symbol\u NAME”
。现在,您可以使用以下工具进行编译:
clang++ file.cpp file.s -shared -o file.dll
它应该可以正常工作。按clang生成的程序集文件的
.drectve
部分的内容包含:
.section .drectve,"r"
.ascii " -export:_TEST"
虽然gcc本应如此:
.section .drectve,"r"
.ascii " -export:TEST"
您可以通过删除\uu declspec(dllexport)
并创建一个文件file.s
,其中包含要导出的符号,如下所示:
.section .drectve,"r"
# list of symbols you want to export
.ascii " -export:TEST"
在末尾保留一条空行,此处不显示
如果要导出符号,请添加.ascii“-export:symbol\u NAME”
。现在,您可以使用以下工具进行编译:
clang++ file.cpp file.s -shared -o file.dll
它应该可以正常工作。您使用什么操作系统进行编译?我问这个问题是因为我注意到在Mac OS X及其Mach-O ABI上,所有符号都以
开头,而同样的编译器在Linux及其ELF格式上省略了
。您使用什么操作系统进行编译?我这样问是因为我注意到,在Mac OS X及其Mach-O ABI上,所有符号都以
开头,而同样的编译器在Linux及其ELF格式上省略了
。非常感谢,先生。非常感谢,先生。