【问题标题】:Building doxygen on msys2在 msys2 上构建 doxygen
【发布时间】:2020-05-29 12:29:07
【问题描述】:

目前我遇到了一个问题,在 Windows 10 上使用 mingw32 或 mingw64 在 msys2 上编译 doxygen。

我所做的是:

  1. git 克隆https://github.com/doxygen/doxygen.git
  2. cd doxygen && mkdir build && cd build
  3. cmake -G "Unix Makefiles" ..
  4. 制作

使用 mingw32 时出现以下错误:

In file included from C:/msys64/home/dglaser/GIT/doxygen/src/layout.cpp:36:0:
C:/msys64/home/dglaser/GIT/doxygen/build/generated_src/layout_default.xml.h:1:1: warning: missing terminating " character
  \n"doxygenlayout version=\"1.0\">
  ^
[...]

使用 mingw64 时(删除构建并再次执行上述步骤后),一切编译正常,但在链接期间出现错误:

C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../lib/libdoxymain.a(doxygen.cpp.obj):doxygen.cpp:(.text+0x36dd6): undefined reference to `QFileInfo::absFilePath() const'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../lib/libdoxymain.a(doxygen.cpp.obj):doxygen.cpp:(.text+0x36e84): undefined reference to `QFileInfo::isFile() const'
[...]

知道如何解决其中的一个吗?

【问题讨论】:

  • 重新安装 msys2 完成了这项工作。安装所有依赖库后,doxygen 现在可以很好地编译。如果安装后无法识别Iconv,请删除构建文件夹并重新运行cmake。它与cmake -G "Unix Makefiles" .. 合作

标签: mingw doxygen msys2


【解决方案1】:

当使用 MSYS2 时,你应该使用:

cmake.exe -G"MSYS Makefiles"

当我从最新的源代码压缩包 http://doxygen.nl/files/doxygen-1.8.18.src.tar.gz 构建时,它在我从 CMakeLists.txt 中删除包含 /bigobj 的行后工作。

【讨论】:

  • 不幸的是,我的 cmake 不知道 MSYS Makefiles:
  • 谢谢,但重新安装 msys2 可以解决问题。“MSYS Makefiles”仍然不可用。
  • @themole 我的 windows 10 CMake 确实有 MSYS Makefiles 的可能性,您使用的是哪个版本的 cmake?这是windows版本(cmake所在)吗?
  • 我使用的是我自己编译的 CMake 版本。这些天我也在 MSYS2 中使用 -GNinja,因为 ninja 比 make 快很多。
【解决方案2】:

msys2 不知何故损坏/过时。更新导致环境崩溃,所以我删除了 C:\msys64 并重新安装了它。正确安装所有依赖项(GCC、cmake、make、python、libiconv、bison、bisoc++)后,编译并正确执行。

谢谢大家!

【讨论】:

    猜你喜欢
    • 2017-06-22
    • 1970-01-01
    • 2020-09-17
    • 2016-07-25
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多