【问题标题】:NMAKE: How do I force a debug build? [7ZIP]NMAKE:如何强制调试构建? [7ZIP]
【发布时间】:2019-06-04 01:57:43
【问题描述】:

构建 7Zip 的建议方法是在命令行上通过 nmake 命令行实用程序。 7zip 似乎没有提供有效的视觉工作室解决方案。

我已经看到建议使用诸如 nmake NEW_COMPILER=1 MY_STATIC_LINK=1 之类的调用来使用各种嵌套的 .MAK 文件启动构建。

使用此命令行界面,我如何强制使用调试符号进行构建?

如果没有通过 nmake 完成此任务的标准方法,我很高兴收到有关 7Zip 的帮助。与 GNU make 相比,我对 .MAK 的熟悉程度要低得多,并且迄今为止无法在 7ZIP 中找到类似于 GNU 中的“调试目标”的东西。

【问题讨论】:

    标签: build nmake


    【解决方案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
    

    我在不同的库上对此进行了测试,我认为这里会有相似之处。

    【讨论】:

      【解决方案2】:

      7zip 归档器提供了出色的压缩和性能结果,但遗憾的是缺乏文档,也没有构建过程,也没有整个代码。
      我知道这个问题是 1.5 年前提出的,但我希望能节省一些时间在 7z 中挖掘。
      要从源代码构建 7z,您需要 Microsoft Visual Studio 并执行以下步骤:

      1. VS 2019 的启动工具命令提示符
      2. 导航到源文件夹cd c:\sources\7z
      3. 调用nmake /f makefile

      否则,您可以将 MSVC 6.0 dsw/dsp 文件转换为现代 .vcxproj 格式。只需在 MSVC 2019 中打开 dsw 文件,它就会自动进行转换。

      诀窍是您需要导航到项目目录才能执行此操作。 7z 构建系统与相关目录结构硬绑定,并从顶级主 Build.mak 文件获取构建参数。
      因此,如果您需要修改所有项目的构建参数,只需修改该文件即可。

      对于7z version 19.00,您需要在CPP/Build.mak file 中编辑这些行:

      1. /Zi 添加到行
        CFLAGS = $(CFLAGS) -nologo -c -Fo$O/ -W4 -WX -EHsc -Gy -GR- -GF /Zi

      2. 添加/DEBUG
        LFLAGS = $(LFLAGS) -nologo -OPT:REF -OPT:ICF /DEBUG

      3. 为标志 CFLAGS_O1 CFLAGS_O2 更改 -O1 和 -O2

        !IF "$(PLATFORM)" == "x64"
        CFLAGS_O1 = $(CFLAGS) -Od
        !ELSE
        CFLAGS_O1 = $(CFLAGS) -Od
        !ENDIF
        CFLAGS_O2 = $(CFLAGS) -Od
        
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-06
        • 1970-01-01
        相关资源
        最近更新 更多