忽略#pragma comment(lib, ...)?
我正在尝试执行先前生成的 .obj 文件的链接(使用最新版本的 MSVC)。
创建这些 .obj 时,源代码指定:
#pragma comment(lib, ...)
因此,链接器尝试链接源中指定的静态库。 有没有办法指示链接器忽略这些库,以便我可以指定自己的库?
例如,如果一段源代码执行以下操作:
#pragma comment(lib, foo.lib)
在链接时,我希望链接器忽略“foo.lib”,而是链接“bar.lib”。
I'm attempting to perform a link of previously generated .obj files (using the latest version of MSVC).
When those .obj's were created, the source code specified:
#pragma comment(lib, ...)
As such, the linker is attempting to link against static libraries specified in the source. Is there a way to instruct the linker to ignore these libraries, so I can specify my own?
e.g., if a piece of source did the following:
#pragma comment(lib, foo.lib)
At link time, I'd like the linker to ignore 'foo.lib', and instead link against 'bar.lib'.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为什么不更改源代码(
#pragma
指令)?来自
评论
MSDN 页面:您还可以使用
NODEFALTLIB
链接器选项可阻止foo.lib
被链接,并像指定其他 lib 文件一样指定bar.lib
(即通过“链接器属性”窗格)。否则,将 bar.lib 重命名为 foo.lib (厚颜无耻的解决方案)。
Why not change the source (the
#pragma
directives)?From
comment
MSDN page:You can also use the
NODEFALTLIB
linker option to stopfoo.lib
from being linked, and specifybar.lib
as you would other lib files (i.e. via the Linker Properties pane).Otherwise, rename
bar.lib
tofoo.lib
(a cheeky solution).