我的意思是从Win10 + PortableApps Msys2下的CGAL包编译示例PortableApps。对于库本身,我使用预编译的包($ pacman -Qs cgal
给出local/mingw-w64-x86_64-cgal 4.14-1
)。我曾经能够在我以前的个人电脑中做到这一点,详见下面。
在将所有内容转移到一台新PC (简单地复制,它是PortableApps)之后,我用Msys2进行了系统更新(出于其他原因)。我照常进行:mkdir build
,cd build
,ccmake ..
。在按下Release
以生成我得到的文件时,选择g
模式和冗长的ON
CMake Error in CMakeLists.txt:
Imported target "CGAL::CGAL" includes non-existent path
"C:/building/msys64/mingw64/include"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
在按e
退出错误消息时,ccmake
gui被退出,并且没有生成任何文件。
在谷歌搜索了一下之后,这建议创建缺少的did,这似乎只是一个解决办法(我没有尝试修改这)。我创造了那些脏东西然后我得到了
CMake Error in CMakeLists.txt:
Target "CGAL::CGAL" contains relative path in its
INTERFACE_INCLUDE_DIRECTORIES:
"C:/building/msys64/mingw64/include"
,我怎么才能解决这个问题?,我在周围找不到合适的答案。
可能是相关的链接,但我找不到合适的解决方案:
https://gitlab.kitware.com/cmake/cmake/commit/634bb33f3aa3b7f2181a896c025976b52171524a
https://cmake.org/cmake/help/v3.12/manual/cmake-buildsystem.7.html
注意到:其他例子也是如此。
编辑:我不知道发生了什么变化,但是现在按下e
退出错误消息(见上面),所有生成的文件都出现了,包括Makefile
。因此,我可以按照以前的情况进行如下所述。无论是否存在缺失的dir,都会发生这种情况(错误消息更改,但我可以生成可执行文件)。AFAICT,唯一相关的改变是我刚刚安装了软件包,mingw-w64-x86_64-eigen3 (3.3.7-1)
,mingw-w64-x86_64-suitesparse (5.4.0-1)
,mingw-w64-x86_64-lapack (3.8.0-5)
,但是我认为这不重要。
以前的状况
为了编译和链接CGAL示例,在我以前的PC中,需要进行一些调整。编译进行得很好,但是链接需要一些调整。用于链接读取的示例命令行
/mingw64/bin/c++.exe -O3 -DNDEBUG -Wl,--enable-auto-import CMakeFiles/reconstruction_structured.dir/reconstruction_structured.cpp.o -o reconstruction_structured.exe -Wl,--out-implib,libreconstruction_structured.dll.a -Wl,--major-image-version,0,--minor-image-version,0 /mingw64/lib/lib/libmpfr.a /mingw64/lib/lib/libgmp.dll.a /mingw64/lib/lib/libCGAL.dll.a -lC:/building/msys64/mingw64/lib/libgmp.dll.a -lC:/building/msys64/mingw64/lib/libmpfr.a
所需的两种修复方法是
/mingw64/lib/lib/
;build.make
)文件中用/mingw64/lib/
替换link.txt
。-lC:/building/msys64/mingw64/lib/libgmp.dll.a
文件中用-lgmp
替换标志link.txt
。同样适用于-lmpfr
。发布于 2019-10-15 04:53:02
运行此命令以查找CGAL CMake文件中提到错误目录C:/building/
的所有位置:
grep -r '/building/' /mingw64/lib/cmake/CGAL
对于每个实例,要么删除它,要么用更合适的东西替换它。
(注:我自己也没试过这个。)
这个错误的目录是MSYS2 (我试图在某一时刻修复 )的一个普遍问题。
https://stackoverflow.com/questions/58380995
复制相似问题