C 中的视觉名称装饰或名称熔断
visual Name decoration or name mangling in c++
我已经使用cygwin生成了dll文件,我正在尝试在Visual Studio中使用它。
- 我在Cygwin编译的一部分中获得了带有函数名称的DEF(.DEF(文件。
- 使用作为MSVC的一部分出现的lib.exe程序,我生成了.lib文件。
在MSVC中,我编写了一个程序,该程序使用了创建的LIB文件的函数。
我有链接器错误。当我检查被操纵的名称时,DEF文件中的名称与MSVC中丢弃的错误中的名称不同。我脱离了两个,发现MSVC已用__cdecl
关键字将功能名称汇总。
如何使用__cdecl
关键字在Cygwin中创建混乱的功能名称?我是否错过了CGWIN编译中的任何标志?
Visual Studio:
混乱的名称:
(__ imp_?configure_tls_context@client@asio_http2@nghttp2@@@ya?averror_code@system@boost@boost@boost @@ aav456@aavcontext@aavcontext@ssl@ssl@ssl@asio@asio@asio@asio@6@@z(
脱词名称:
(__ imp_class boost :: system :: error_code __cdecl nghttp2 :: asio_http2 :: client :: configure_tls_context(class( boost :: system :: error_code&,class boost :: asio :: ssl :: context&(
cygwin的def文件:混乱的名称:
_zn7nghttp210asio_http26client21configure_tls_contextern5boost6system6system10err_codeerns2_4asio3ssl7contexte
脱词名称:
nghttp2 :: asio_http2 :: client :: configure_tls_context(boost :: system :: error_code&,boost :: asio :: asio :: assl :: ssl :: ssl :: context& amp;(
作为一般规则;使用C 代码,您始终需要使用完全相同的编译器编译所有代码。这包括可执行文件和所有静态和动态库。C 没有ABI规范,所有编译器都可能以不同的方式构造名称,甚至编译器的新次要版本也可能产生与与以前版本构建的代码不相容的代码。没有名称熔断或数据结构布局等标准。
so;始终使用完全相同编译器或为痛苦世界做好准备。
- 视觉studo 2019中的漫画和静态/动态绑定
- 如何改变c++应用程序的视觉效果
- 视觉工作室项目.提取源文件夹名称
- 为什么我在尝试模板时遇到视觉工作室C++错误
- 视觉工作室 2017;启用 /permissive 时,类型 "const wchar_t *" 的参数与类型 "PWSTR" 的参数不兼容
- 视觉我希望一个函数在另一个函数C++中进行计算
- 视觉 如何循环访问C++中遵循类似格式的多个.txt文件?
- remove(str.begin(), str.end(), );无法正常工作(我正在使用视觉工作室 2012)
- 背包问题,视觉工作室问题
- 如何在视觉c ++项目中添加箭头键作为修饰键Microsoft
- 如果变量数据包含大于 vector 所有元素的整数,则仅在视觉工作室上接收"矢量下标超出范围"?
- 视觉C++未按所需顺序打印
- 视觉C++使用 map 来比较字符串中的每个单词
- C++11 中好友模板类的视觉C++错误
- 迭代器跳闸视觉C++ 2017 断言
- 视觉C++联盟,垃圾价值
- 无法安装由视觉C++制作的apk
- C++ 调试断言失败 - 矢量下标超出视觉工作室的范围
- 视觉C++:在 DLL 加载期间,全局变量初始化顺序是否具有确定性?
- 使用外部文件中的变量进行视觉C++