Cmake 无法正确生成 assimp 解决方案 [Windows 10]
Cmake not generating assimp solutions properly [Windows 10]
Cmake 3.15 32 位
阿西姆普 4.1.0
您好,我在使用 cmake 和 assimp 时遇到了一些困难。在过去的几天里,我一直在尝试通过cmake为CodeBlocks生成一个sassimp 工作区。
我试图用CMD和CmakeGUI方法生成一个解决方案,但没有令人满意的结果。
在GUI中,生成项目的标准程序是定义正确的源和目标路径并选择适当的生成器(CodeBlocks MinGW Makefiles)。
cmd 中用于生成 assimp 项目的代码:
cmake -G "CodeBlocks - MinGW Makefiles" MakeLists.txt -S "source path" -B "build path"
生成文件后获得的信息日志:
-- The C compiler identification is GNU 8.2.0
-- The CXX compiler identification is GNU 8.2.0
-- Check for working C compiler: C:/MinGW/bin/gcc.exe
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/MinGW/bin/g++.exe
-- Check for working CXX compiler: C:/MinGW/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Shared libraries enabled
-- Looking for DirectX...
-- DirectX_PREFIX_PATH changed.
-- Found DirectX: C:/MinGW/lib/libd3d9.a
-- DX lib dir: C:/MinGW/lib
-- Looking for ZLIB...
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Could not locate ZLIB
-- compiling zlib from souces
CMake Deprecation Warning at contrib/zlib/CMakeLists.txt:8 (cmake_policy):
The OLD behavior for policy CMP0048 will be removed from a future version
of CMake.
The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of off64_t
-- Check size of off64_t - done
-- Looking for fseeko
-- Looking for fseeko - not found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Could NOT find rt (missing: RT_LIBRARY)
INFO RT-extension not found. glTF import/export will be built without Open3DGC-compression.
-- Enabled formats: AMF 3DS AC ASE ASSBIN ASSXML B3D BVH COLLADA DXF CSM HMP IRRMESH IRR LWO LWS MD2 MD3 MD5 MDC MDL NFF NDO OFF OBJ OGRE OPENGEX PLY MS3D COB BLEND IFC XGL FBX Q3D Q3BSP RAW SIB SMD STL TERRAGEN 3D X X3D GLTF 3MF MMD
-- Disabled formats:
-- Could NOT find IL (missing: IL_LIBRARIES IL_INCLUDE_DIR)
CMake Warning at CMakeLists.txt:439 (MESSAGE):
Build of assimp_qt_viewer is disabled. Unsatisfied dendencies: Qt5 DevIL
-- Configuring done
-- Generating done
-- Build files have been written to: E:/Assimp
不幸的是,该项目无法使用以下构建日志在 CodeBlock 中构建:
Checking if target is up-to-date: mingw32-make.exe -q -f Makefile all
Running command: C:/TDM-GCC-64/bin/mingw32-make.exe -f "E:/Assimp/Makefile" VERBOSE=1 all
"C:Program FilesCMakebincmake.exe" -SC:UsersognjeDownloadsassimp-4.1.0 -B"E:Assimp" --check-build-system CMakeFilesMakefile.cmake 0
"C:Program FilesCMakebincmake.exe" -E cmake_progress_start "E:AssimpCMakeFiles" "E:AssimpCMakeFilesprogress.marks"
C:/TDM-GCC-64/bin/mingw32-make.exe -f CMakeFilesMakefile2 all
mingw32-make.exe[1]: Entering directory 'E:/Assimp'
C:/TDM-GCC-64/bin/mingw32-make.exe -f contribzlibCMakeFileszlib.dirbuild.make contrib/zlib/CMakeFiles/zlib.dir/depend
mingw32-make.exe[2]: Entering directory 'E:/Assimp'
[ 1%] Generating zlib1rc.obj
cd /d E:PROGRA~3PROGRA~1Assimpcontribzlib && C:MinGWbinwindres.exe -D GCC_WINDRES -I C:/Users/ognje/Downloads/assimp-4.1.0/contrib/zlib -I "E:/Assimp/contrib/zlib" -o "E:/Assimp/contrib/zlib/zlib1rc.obj" -i C:/Users/ognje/Downloads/assimp-4.1.0/contrib/zlib/win32/zlib1.rc
gcc: error: i: No such file or directory
gcc: error: Assimp/contrib/zlib: No such file or directory
C:MinGWbinwindres.exe: preprocessing failed.
mingw32-make.exe[2]: *** [contrib/zlib/zlib1rc.obj] Error 1
mingw32-make.exe[1]: *** [contrib/zlib/CMakeFiles/zlib.dir/all] Error 2
mingw32-make.exe: *** [all] Error 2
contribzlibCMakeFileszlib.dirbuild.make:60: recipe for target 'contrib/zlib/zlib1rc.obj' failed
mingw32-make.exe[2]: Leaving directory 'E:/Assimp'
CMakeFilesMakefile2:134: recipe for target 'contrib/zlib/CMakeFiles/zlib.dir/all' failed
mingw32-make.exe[1]: Leaving directory 'E:/Assimp'
E:/Assimp/Makefile:128: recipe for target 'all' failed
Process terminated with status 2 (0 minute(s), 0 second(s))
6 error(s), 0 warning(s) (0 minute(s), 0 second(s))
免責聲明:
当然,我已经用谷歌搜索并尝试了网络上所有已经存在的解决方案 [1] 来解决这个特定问题,但令人失望的是,它们都不起作用。老实说,我对编译和库了解不多,但在我看来,在阅读错误日志时,我会说问题源于 zlib 文件,对吧?谁能帮我解决这个问题?提前谢谢你。
此问题是由检测到的环境错误引起的。zlib-script尝试对windows-resource-build使用以下选项:
C:MinGWbinwindres.exe -D GCC_WINDRES -I C:/Users/ognje/Downloads/assimp-4.1.0/contrib/zlib -I "E:/Assimp/contrib/zlib" -o "E:/Assimp/contrib/zlib/zlib1rc.obj" -i C:/Users/ognje/Downloads/assimp-4.1.0/contrib/zlib/win32/zlib1.rc
选项 -i 将被标识为文件令牌:
gcc: error: i: No such file or directory
因此,zlib的构建失败了,因为用作参数的选项混淆了以下内容的 gcc 解析,在本例中为目标 zlib:
gcc: error: Assimp/contrib/zlib: No such file or directory
我想这是由于缺少在使用特殊版本的 mingw 时必须构建的代码的标识引起的。您能否打开一个问题报告,其中包含 veYOu 可以执行您正在使用的 assimp 以及您的构建中使用的 gcc 版本。您可以在此处执行此操作: 资产导入器库项目的问题跟踪
器- 运行同一解决方案的另一个项目的项目
- Project Euler问题4的错误解决方案
- 计算每个节点的树高,帮助我解释这个代码解决方案
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- visual c++,如何获取解决方案目录中的代码
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- C++Matching Brackets 2解决方案不起作用
- 在 ubuntu3 上C++ goto 定义有什么解决方案吗16.04?
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 我的固定时间步长与增量时间和插值的解决方案是错误的吗?
- 无法在问题解决方案中执行输出逻辑
- 最大的回文产品 - 程序未运行,编写解决方案但无法理解问题
- 在Visual Studio中将Windows解决方案移植到Linux
- Cmake 无法正确生成 assimp 解决方案 [Windows 10]
- 在 64 位 Windows 8 机器上使用 Visual Studio 2012 构建 opencv 的绝对解决方案
- Windows上的模板有什么问题?解决方案是什么
- 一个解决方案,两个项目:如何从 Windows 应用程序调用控制台项目?C++
- windows,c++:将文件发送到exe(c++解决方案),并从发送的文件中读取数据
- 正在寻找C++中基于Windows RAM的共享内存解决方案
- ConsoleApplication4.exe已停止工作.Windows将关闭该程序并通知是否有可用的解决方案