0

昨夜ダウンロードした最新のQTSDKfor Windowsでコンパイルするために、大学の教科書から非常に単純なリストを取得しようとしています。通常のナンセンス(make.batがない、環境変数を手動で追加する必要があるなど)に苦労した後、ようやくビルドできるようになりました。しかし、2つのライブラリのうち1つだけが機能しているようです。

私が使用する.proファイルは非常に単純です。

SUBDIRS += utils \
           dataobjects

TEMPLATE = subdirs

これらの2つのサブフォルダーのそれぞれに、ライブラリのソースがあります。QMAKEを実行すると、makefileが生成され、Makeを実行すると、すべての準備が実行され、g++呼び出しで失敗します。

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc --out-implib,libdataobjects.a -shared -mthreads -Wl -Wl,--out-implib,c:\Users\Cobus\workspace\lib\libdataobjects.a -o ..\..\lib\dataobjects.dll object_script.dataobjects.Debug  -L"c:\Users\Cobus\Portab~1\Qt\2010.02.1\qt\lib" -LC:\Users\Cobus\workspace\lib -lutils -lQtXmld4 -lQtGuid4 -lQtCored4
c:/users/cobus/portab~1/qt/2010.02.1/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -lutils

問題は、-lutilsが追加されたコマンドラインの終わり近くにあるようです。これは、utilsという名前のライブラリがあることを示しています。私はそれを見ることを期待していましたが、-outの後にライブラリ名が含まれていることに気付くでしょう。そのため、それらはlibutilsとlibdataobjectsになります。私はこれがなぜ起こっているのかを理解しようとしましたが、無駄になりました。

誰もが何が起こっているのか考えていますか?

4

2 に答える 2

0

生成されたMakefileがデフォルトでは実行しないQtXmlをプルしているため、これらは別のプロファイルのようです。

.proまたは.priファイルのサブディレクトリを確認してください..そのうちの1つがあなたの混乱に答えます

于 2010-05-07T15:07:49.460 に答える
0

.proファイルは、SUBDIRS各サブディレクトリのディレクトリ名と一致する.proファイルを必要とするテンプレートを使用します。utils\utils.prodataobjects\dataobject.proファイルも必要です。

正しくc:\Users\Cobus\workspace\lib\libdataobjects.a構築されていますか?そうでない場合は、サブディレクトリ.proファイルを確認してください。

あなたが投稿したもので、私は何もコンパイルすることを期待していません。.pro何かをビルドするには、サブディレクトリファイルにターゲットが必要です。

于 2010-05-07T16:08:11.217 に答える