我想使用MinGW的在Fedora 26的交叉編譯OpenImageIO 64位Windows。在使用yum
來檢索相關性的mingw版本後,我跑mingw64-cmake
,然後make
。但是,我馬上收到一個關於stdlib.h
未找到的編譯錯誤。的MinGW /包括/ C++/cstdlib:stdlib.h中:沒有這樣的文件或目錄
[ 0%] Built target CopyFiles
[ 0%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/argparse.cpp.obj
In file included from .../oiio/src/libutil/argparse.cpp:36:0:
/usr/x86_64-w64-mingw32/sys-root/mingw/include/c++/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
#include_next <stdlib.h>
^~~~~~~~~~
compilation terminated.
我已經證實,stdlib.h
發現至少/usr/include/
和/usr/x86_64-w64-mingw32/sys-root/mingw/include/c++/
這裏給編譯器錯誤也是文件的位置。
爲什麼我仍然收到錯誤stdlib.h: No such file or directory
?
更新: 我做更多的研究和學習了以下內容:The preprocessor directive #include_next behaves like the #include directive, except that it specifically excludes the directory of the including file from the paths to be searched for the named file.
這可以解釋爲什麼cstdlib
沒有找到相同的文件夾stdlib.h
。但cstdlib
是MinGW的一部分,而不是我正在編譯的代碼的任何部分。所以我仍然不知道這裏出了什麼問題或者如何解決這個錯誤。
編輯:以下是編譯器版本信息,以備任何用途時使用:https://pastebin.com/PZiXS2fg。這是一個全新的安裝,所以在那裏不應該有任何異常。
出於好奇,這'G ++'版本包含在你的'mingw64'? – TriskalJM
@TriskalJM gcc版本7.1.0 20170502(Fedora的MinGW的7.1.0-1.fc26) – Steve
是不是有你'在/ usr/x86_64的-W64-的mingw32/SYS-根/ MinGW的一個'stdlib.h' /包括/'哪個可以通過'#include_next'找到? – ssbssa