Cpp*_*man 8 c++ assembly casting visual-c++-2013
我正在升级面向INtime RTOS的Visual Studio 2010项目.执行转换操作的代码无法链接.在研究"内联汇编"输出文件时,事实证明,对于某些整数转换操作,VS2013正在生成对__dtol3,__ ttoui3,__ dtoul3,__ ltod3和__ultod3的调用的汇编指令.问题是INtime库不包含这些函数的定义.我已经验证了VS2013对于Debug和Release版本的Win32目标也是如此.
有没有办法让VS2013停止生成对这些功能的生成调用?
Jam*_*lis 14
你会需要禁用SSE2代码生成,通过使用该/拱选项(使用/弓:IA32或/弓:SSE).
或者......(以下内容未得到官方支持 ;您的里程可能会有所不同;请自行承担风险)
从msvcrt.lib中提取定义这些函数的对象,并将该对象直接链接到您的程序中.这些函数在名为ftol3.obj的对象中定义; 你可以用它提取的LIB工具:
=>lib /nologo /list msvcrt.lib | findstr ftol3
f:\binaries\Intermediate\vctools\crt_bld\SELF_X86\crt\prebuild\INTEL\dll_lib\ftol3.obj
=>lib /nologo /extract:f:\binaries\Intermediate\vctools\crt_bld\SELF_X86\crt\prebuild\INTEL\dll_lib\ftol3.obj msvcrt.lib
Run Code Online (Sandbox Code Playgroud)
您可能需要其他对象,具体取决于(a)您使用的功能和(b)INtime库定义的内容.同样,这不是使用Visual C++运行时库的受支持方式,它可能适用于您的特定用例,也可能不适用.
| 归档时间: |
|
| 查看次数: |
6194 次 |
| 最近记录: |