MSVC链接器相当于--wrap

时间:2015-08-14 16:52:13

标签: c visual-c++ ld visual-c++-2008

背景:我正在处理msvc9上的一些遗留系统,并且浮点到int转换存在问题。如果没有为SSE编译,它会发出__ftol2_sse指令,这是一个未定义的引用。

唯一可以抑制此问题的方法是使用/QIfist选项执行内联转换,而不调用任何ftol()。但是,这些内联转换具有不同的舍入算法,因此在与现有代码一起使用时会产生问题。那,他们发出不可抑制的'弃用'警告cl.exe stderr。

我的解决方法是:

// Declare a regular _ftol() function that is present.
long __cdecl _ftol(double); 
// Define _ftol2_sse() to be the regular one.
long __cdecl _ftol2_sse(double f) { return _ftol(f); }

这很好用。但是,某些版本确实定义了_ftol2_sse,在这种情况下,我会得到多个定义,并且在代码中弄清楚这一点很痛苦。

我希望从--wrap __ftol2_sse执行类似ld的操作,并覆盖所有构建的行为。在MSVC上有可能是这样吗?

0 个答案:

没有答案