具体来说,我在MingW环境中使用了visual-c++。我有一个makefile,它将LDFLAGS定义为这样:
LDFLAGS="-MACHINE:X64 -OPT:REF,ICF -FORCE libtcmalloc_minimal.lib -INCLUDE:__tcmalloc"如果我以这种方式构建我的程序,我需要与程序一起分发libtcmalloc_minimal.dll。
我想,如果这是GCC或者类似的话,我会使用-static,但是这个标志没有被visual-c++识别。有办法强制这个库静态地实现吗?
发布于 2014-12-13 12:20:58
这里的问题是,.lib可以是静态库,也可以是DLL的导入库。在第一种情况下,.a文件以二进制文件的方式链接在Linux上,解析地址,删除不需要的代码等等。在第二种情况下,.lib文件作为DLL的存根工作,没有它就无法工作。您需要为您的库获取正确的版本(如果存在的话),然后链接到它,您不能使导入库表现为静态库。
https://stackoverflow.com/questions/27458631
复制相似问题