更具体地说,我在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静态实现?
答案 0 :(得分:1)
这里的问题是.lib
可以是静态库,也可以是DLL的导入库。在第一种情况下,它在二进制文件中以与.a
文件在Linux上相同的方式链接,解析地址,删除不需要的代码等。在第二种情况下,.lib
文件用作存根一个DLL,没有它就无法运行。您需要为库获取正确的版本(如果存在),然后与之链接,您不能使导入库的行为类似于静态库。