gpt4 book ai didi

c++ - 如何让 VS2013 停止生成对 __dtol3、__dtoui3 和其他整数类型转换函数的调用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:54:53 25 4
gpt4 key购买 nike

我正在升级一个以 INtime RTOS 为目标的 Visual Studio 2010 项目。执行转换操作的代码无法链接。在调查“内联汇编”输出文件时,发现对于某些整数转换操作,VS2013 正在生成汇编指令以调用 __dtol3、__dtoui3、__dtoul3、__ltod3 和 __ultod3。问题是 INtime 库不包含这些函数的定义。我已经验证 VS2013 对调试和发布版本的 Win32 目标执行相同的操作。

有没有办法让 VS2013 停止生成对这些函数的调用?

最佳答案

您需要通过使用 the /arch option 来禁用 SSE2 codegen (使用/arch:IA32 或/arch:SSE)。

或者...(以下内容未得到官方支持;您的情况可能会有所不同;这样做需要您自担风险)

从 msvcrt.lib 中提取定义这些函数的对象,并将该对象直接链接到您的程序中。这些函数定义在名为 ftol3.obj 的对象中;你可以使用 the lib tool 提取它:

=>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

您可能需要额外的对象,具体取决于 (a) 您使用的函数和 (b) INtime 库定义的确切内容。同样,这不是使用 Visual C++ 运行时库的受支持方式,它可能适用于也可能不适用于您的特定用例。

关于c++ - 如何让 VS2013 停止生成对 __dtol3、__dtoui3 和其他整数类型转换函数的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21286417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com