嗨,我正在尝试用cmake+doxygen生成我的文档。如FindDoxygen的cmake文档中所述,输出路径:
[…]将被转换为相对于当前二进制目录的绝对路径
现在在我的构建/Doxyfile.doxygen中,我可以选择绝对窗口路径:
OUTPUT_DIRECTORY = D:/projects/MyProject/build/
但是用这个Doxyfile调用doxygen会产生:
error: Could not create output directory /d/projects/MyProject/D:/projects/MyProject/build/html
我认为这是因为我使用的是mingw,而doxygen不认为windows路径是绝对的,因此试图将cwd连接到它前面。
我的CMakeLists.txt中的相关命令如下所示:
find_package(Doxygen
REQUIRED dot
OPTIONAL_COMPONENTS mscgen dia)
if (DOXYGEN_FOUND)
doxygen_add_docs(Doxygen)
endif()
有人知道怎么解决这个问题吗?
编辑:
- CMake版本:3.20.2
- doxygen版本:1.9.1(ec8203f4332e7e7b16b1c85351c7c48d128f924(
第2版:我使用clion来运行使用捆绑版本的CMake。从命令行运行cmake .. && make Doxyfile
工作
您遇到的问题可能与如何指定路径有关。
Windows风格的路径如下所示:
OUTPUT_DIRECTORY = D:projectsMyProjectbuild
而MSYS风格的路径看起来是这样的:
OUTPUT_DIRECTORY = /d/projects/MyProject/build
但是,指定一个绝对路径不是一个好主意,尤其是如果您想分发源文件或将其移动/复制到其他地方。最好只指定一个相对于运行doxygen
的位置的文件夹,在您的情况下,它可能看起来像这样:
OUTPUT_DIRECTORY = build