你能在命令行上使用visual-c ++静态链接特定的库吗?

时间:2014-12-13 12:12:53

标签: c++ visual-c++ makefile linker ldflags

更具体地说,我在MingW环境中使用visual-c ++。我有一个定义LDFLAGS的makefile:

LDFLAGS="-MACHINE:X64 -OPT:REF,ICF -FORCE libtcmalloc_minimal.lib -INCLUDE:__tcmalloc"

如果我以这种方式构建程序,我需要将libtcmalloc_minimal.dll与程序一起分发。

我假设这是GCC或我使用的-static,但是visual-c ++无法识别该标志。有没有办法强制这个lib静态实现?

1 个答案:

答案 0 :(得分:1)

这里的问题是.lib可以是静态库,也可以是DLL的导入库。在第一种情况下,它在二进制文件中以与.a文件在Linux上相同的方式链接,解析地址,删除不需要的代码等。在第二种情况下,.lib文件用作存根一个DLL,没有它就无法运行。您需要为库获取正确的版本(如果存在),然后与之链接,您不能使导入库的行为类似于静态库。