我构建了Ant,并且我正在使用它来构建JOGL。在这个版本中,我恢复到了java 1.8。我安装了MinGW32,我可以使用gcc。我用ant构建了gluegen,它就像一个护身符。在一个干净的构建中,在jogl中做同样的事情会得到以下日志(缩写):
c.configure:
c.build.nativewindow.windowlib.x11:
c.build.nativewindow.windowlib.windows:
[echo] Output lib name = nativewindow_win32
[echo] c.compiler.use-jawt false
[echo] nativewindow_win32.useLibJAWT ${nativewindow_win32.useLibJAWT}
[echo] Compiling nativewindow_win32
[echo] java.lib.dir.platform: C:\Program Files\Java\jdk1.8.0_191\jre/../jre/bin
[cc] 4 total files to be compiled.
[cc] cc1.exe: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
[cc] C:\Users\micha\git\opengl\jogl\src\nativewindow\native\NativewindowCommon.c: In function 'NativewindowCommon_CurrentTimeMillis':
[cc] C:\Users\micha\git\opengl\jogl\src\nativewindow\native\NativewindowCommon.c:155:5: warning: 'gettimeofday' is deprecated [-Wdeprecated-declarations]
[cc] gettimeofday(&tv,NULL);
[cc] ^~~~~~~~~~~~
[cc] In file included from C:\Users\micha\git\opengl\jogl\src\nativewindow\native\NativewindowCommon.c:4:0:
[cc] c:\mingw\include\sys\time.h:106:53: note: declared here
[cc] int __cdecl __MINGW_NOTHROW __POSIX_2008_DEPRECATED gettimeofday
[cc] ^~~~~~~~~~~~
[cc] cc1.exe: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
[cc] cc1.exe: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
[cc] cc1.exe: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
[cc] Starting link
rename.dylib:
rename.mingw.dll:
[move] Moving 1 file to C:\Users\micha\git\opengl\jogl\build\nativewindow\obj
gluegen.properties.load.user:
gluegen.cpptasks.initialize:
[echo] os.name=Windows 10
[echo] os.version=10.0
[echo] os.arch=amd64
[echo] nativejartag.prefix = jogamp/nativetag
[echo] c.compiler.debug=false
[echo] c.compiler.use-debug=${c.compiler.use-debug}
[echo] c.compiler.optimise=none
gluegen.cpptasks.striplibs:
[echo] Strip symbols from libs in ../build/nativewindow/obj
c.build.nativewindow.windowlib.macosx:
c.build.nativewindow.windowlib:
c.build.nativewindow.awt:
[echo] Output lib name = nativewindow_awt
[echo] c.compiler.use-jawt true
[echo] nativewindow_awt.useLibJAWT true
[echo] Compiling nativewindow_awt
[echo] java.lib.dir.platform: C:\Program Files\Java\jdk1.8.0_191\jre/../jre/bin
[cc] 6 total files to be compiled.
[cc] cc1.exe: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
[cc] cc1.exe: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
[cc] cc1.exe: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
[cc] cc1.exe: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
[cc] cc1.exe: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
[cc] cc1.exe: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
[cc] Starting link
[cc] ..\..\..\..\..\..\..\..\Program Files\Java\jdk1.8.0_191\jre\bin/jawt.dll: file not recognized: File format not recognized
[cc] collect2.exe: error: ld returned 1 exit status
BUILD FAILED
C:\Users\micha\git\opengl\jogl\make\build.xml:71: The following error occurred while executing this line:
C:\Users\micha\git\opengl\jogl\make\build-nativewindow.xml:761: The following error occurred while executing this line:
C:\Users\micha\git\opengl\jogl\make\build-nativewindow.xml:701: gcc failed with return code 1
Total time: 12 seconds我运行的是Windows 10,Ant 1.10.5。我知道“文件格式不被识别”错误意味着
发布于 2018-12-27 12:42:25
好的,我在发完这篇文章后马上就明白了。我使用的是MinGW32,而我本应该使用64位替代方案。切换到MinGW64后,构建成功。
https://stackoverflow.com/questions/53939829
复制相似问题