构建7Zip的建议方法是在命令行上通过nmake命令行实用程序。7zip似乎没有提供一个有效的visual studio解决方案。
我见过使用各种嵌套的.MAK文件启动构建时建议使用的nmake NEW_COMPILER=1 MY_STATIC_LINK=1等调用。
使用此命令行界面,我如何使用调试符号强制构建?
如果没有通过nmake实现这一点的标准方法,我很高兴得到关于7Zip的帮助。与GNU make相比,我对.MAK的了解要少得多,到目前为止,我还无法在GNU make in 7ZIP中找到类似于“调试目标”的东西。
发布于 2020-02-17 23:37:59
若要创建使用visual studio nmake的项目,需要编辑makefile并进行两次更改。
首先,需要将/Zi添加到编译时使用的标志列表中
CFLAGS = $(CFLAGS) -nologo -c -Fo$O/ -W4 -WX -EHsc -Gy -GR- -GF /Zi其次,您需要将/debug添加到链接器的选项列表中,例如
LFLAGS = $(LFLAGS) -nologo -OPT:REF -OPT:ICF /DEBUG我在一个不同的库上测试了它,我想这里会有相似之处。
发布于 2021-03-07 08:43:51
7zip归档程序提供了很好的压缩和性能结果,但不幸的是,它既没有构建过程的文档,也没有完整的代码。
我知道这个问题是在1.5年前提出的,但我希望能节省一些人在7z中挖掘的时间。
要从源代码构建7z,您需要Microsoft Visual Studio,并执行以下步骤:
cd c:\sources\7znmake /f makefile否则,您可以将MSVC6.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
/DEBUGLFLAGS = $(LFLAGS) -nologo -OPT:REF -OPT:ICF /DEBUG
用于标志的
CFLAGS_O1 CFLAGS_O2 !IF "$(PLATFORM)“== "x64”CFLAGS_O1 = $(CFLAGS) -Od !ELSE CFLAGS_O1 = $(CFLAGS) -Od !ENDIF CFLAGS_O2 = $(CFLAGS) -Od
https://stackoverflow.com/questions/56436451
复制相似问题