0

Code :: Blocks、Windows7で実行しているFLTKのテストプロジェクトをリンクするのにかなりの問題があります。

ライブラリを正しい順序に並べる方法を理解するためにかなりの時間を費やした後、私はプロジェクトをほぼ完了することができました。ただし、リンクの問題はまだあります。

mingw32-g++.exe -Wall -fexceptions  -IC:\Users\Svalorzen\Documents\Projects\fltk-1.3.0 -mwindows -DWIN32 -DUSE_OPENGL32 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE     -c C:\Users\Svalorzen\Documents\Projects\test\main.cpp -o obj\Debug\main.o
mingw32-g++.exe  -o bin\Debug\test.exe obj\Debug\main.o   -LC:\Users\Svalorzen\Documents\Projects\fltk-1.3.0\lib -mwindows -lfltk -lole32 -luuid -lcomctl32  
C:\Users\Svalorzen\Documents\Projects\fltk-1.3.0\lib/libfltk.a(Fl_Native_File_Chooser.o):Fl_Native_File_Chooser.cxx:(.text+0x1556): undefined reference to `__chkstk_ms'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 1 seconds)
1 errors, 0 warnings

ただし、Code :: Blocksが示すのとまったく同じスクリプトを使用して、コマンドプロンプト(または重要な場合はmsys)で実行すると、すべてが正しくコンパイルおよびリンクされます。結果のexeも機能します。

C:\Users\Svalorzen\Documents\Projects\test>mingw32-g++ -Wall -fexceptions -IC:\Users\Svalorzen\Documents\Projects\fltk-1.3.0 -mwindows -DWIN32 -DUSE_OPENGL32 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c C:\Users\Svalorzen\Documents\Projects\test\main.cpp -o obj\Debug\main.o

C:\Users\Svalorzen\Documents\Projects\test>mingw32-g++ -o bin\Debug\test.exe obj\Debug\main.o -LC:\Users\Svalorzen\Documents\Projects\fltk-1.3.0\lib -mwindows -lfltk -lole32 -luuid -lcomctl32

C:\Users\Svalorzen\Documents\Projects\test>dir bin\Debug\test.exe
   Volume in drive C has no label.
   Volume Serial Number is 00E8-6659

Directory of C:\Users\Svalorzen\Documents\Projects\test\bin\Debug

10/05/2012  19:01           661.087 test.exe
           1 File(s)        661.087 bytes
           0 Dir(s)  66.016.849.920 bytes free

命令のパスはすべて絶対的であるため、これがなぜであるかはよくわかりません。

私は何が間違っているのですか?何を確認すればよいですか?

編集:覚えていないMinGWがインストールされていて、Code::Blocksがそれを使用していたことが判明しました。私はそれを変更しました、そして今すべてが修正されました。

4

2 に答える 2

0

MinGWが最新の場合は、追加-no-vcproj-no-dspてから実行してみてくださいmingw32-make confclean

于 2012-05-13T09:06:47.657 に答える
0

覚えていないMinGWがインストールされていて、Code::Blocksがそれを使用していたことがわかりました。

ライブラリを作成したのと同じコンパイラでCode::Blocksをセットアップしましたが、すべて問題ありません。

于 2012-05-13T21:56:13.987 に答える