Gcc 库二进制文件中的本地路径字符串

Gcc 库二进制文件中的本地路径字符串,gcc,mingw,build-process,configure,Gcc,Mingw,Build Process,Configure,在使用MinGW+MSYS构建各种库之后,我注意到所有生成的二进制文件(.a、.dll、.exe文件)都包含构建目录的本地路径: C:\MinGW\msys\1.0\home\UserName\LibraryDir 我曾尝试使用以下命令剥离我认为是符号的内容,但没有成功: sh ./configure LDFLAGS="-s" make 问题1:将这些看似无用的信息保存到二进制文件中供其他人使用的目的是什么 问题2:如何防止它被完全保存(GCC中是否有关闭它的开关)?正如MinGW邮件列表上

在使用MinGW+MSYS构建各种库之后,我注意到所有生成的二进制文件(.a、.dll、.exe文件)都包含构建目录的本地路径:

C:\MinGW\msys\1.0\home\UserName\LibraryDir
我曾尝试使用以下命令剥离我认为是符号的内容,但没有成功:

sh ./configure LDFLAGS="-s"
make
问题1:将这些看似无用的信息保存到二进制文件中供其他人使用的目的是什么


问题2:如何防止它被完全保存(GCC中是否有关闭它的开关)?

正如MinGW邮件列表上已经回答的那样,看起来您正在使用嵌入调试信息的构建。要删除它,请在完成构建后在可执行文件上运行strip实用程序

strip *.exe *.dll
但是,不要像这样剥离你的库,否则你会使它们无法使用。最好将它们保持原样,并将调试信息放在适当的位置,除非您计划以“仅发布”质量分发它们(我不推荐这样做——可执行文件和DLL是正常的发布质量分发文件)。如果必须这样做,则需要将“-g”标志添加到“strip”:

strip -g *.a