建议的构建7Zip的方法是通过nmake命令行实用工具在命令行上。 7zip似乎未提供有效的Visual Studio解决方案。
我已经看到诸如nmake NEW_COMPILER=1 MY_STATIC_LINK=1
之类的调用建议用于使用各种嵌套的.MAK文件来启动构建。
使用此命令行界面如何强制使用调试符号进行构建?
如果没有通过nmake完成此操作的标准方法,我将特别高兴获得有关7Zip的帮助。我对.MAK的了解不如对GNU的了解,到目前为止,我还无法在7ZIP中找到类似于GNU的“调试目标”的东西。
答案 0 :(得分:1)
要使使用Visual Studio nmake的项目生成调试输出,您需要编辑makefile并进行2次更改。
首先,您需要在编译时使用的标志列表中添加/ Zi
CFLAGS = $(CFLAGS) -nologo -c -Fo$O/ -W4 -WX -EHsc -Gy -GR- -GF /Zi
第二,您需要将/ debug添加到链接器的选项列表中,例如
LFLAGS = $(LFLAGS) -nologo -OPT:REF -OPT:ICF /DEBUG
我在不同的库中对此进行了测试,我认为这里会有相似之处。
答案 1 :(得分:1)
7zip 归档程序提供了出色的压缩和性能结果,但遗憾的是缺乏文档、构建过程和整个代码。
我知道这个问题是在 1.5 年前提出的,但我希望能节省一些时间在 7z 中挖掘。
要从源代码构建 7z,您需要 Microsoft Visual Studio 并执行以下步骤:
cd c:\sources\7z
nmake /f makefile
否则,您可以将 MSVC 6.0 dsw/dsp 文件转换为现代 .vcxproj 格式。只需在 MSVC 2019 中打开 dsw 文件,它就会自动进行转换。
诀窍是你需要导航到项目目录才能做到这一点。 7z 构建系统硬绑定到相对目录结构,并从顶级主 Build.mak 文件中获取构建参数。
因此,如果您需要修改所有项目的构建参数,只需修改该文件即可。
对于 7z version 19.00
,您需要在 CPP/Build.mak file
中编辑这些行:
将 /Zi
fag 添加到行 CFLAGS = $(CFLAGS) -nologo -c -Fo$O/ -W4 -WX -EHsc -Gy -GR- -GF /Zi
添加/DEBUG
LFLAGS = $(LFLAGS) -nologo -OPT:REF -OPT:ICF /DEBUG
更改标志 CFLAGS_O1 CFLAGS_O2
的 -O1 和 -O2
!IF "$(PLATFORM)" == "x64"
CFLAGS_O1 = $(CFLAGS) -Od
!ELSE
CFLAGS_O1 = $(CFLAGS) -Od
!ENDIF
CFLAGS_O2 = $(CFLAGS) -Od