3

私はちょうど私が成功した主なライブラリをコンパイルされたコードの変更をたくさんした後、VS2008を使用してWinCE7.0ためのQtを構築しようとしました。私はとのリンクを逃したライブラリ全く見当がつかない未解決の外部シンボル__imp__Infと__imp__Nan

1>Linking... 
1> Creating library ..\..\lib\QtScript4.lib and object ..\..\lib\QtScript4.exp 
1>BytecodeGenerator.obj : error LNK2019: unresolved external symbol __imp__Inf referenced in function "public: static double __cdecl QTWTF::FloatHashTraits<double>::emptyValue(void)" ([email protected][email protected]@[email protected]@SANXZ) 
1>Executable.obj : error LNK2001: unresolved external symbol __imp__Inf 
1>MathObject.obj : error LNK2001: unresolved external symbol __imp__Inf 
1>DateMath.obj : error LNK2019: unresolved external symbol __imp__Nan referenced in function "double __cdecl QTWTF::parseDateFromNullTerminatedCharacters(char const *,bool &,int &)" ([email protected]@@[email protected]) 
1>JSValue.obj : error LNK2001: unresolved external symbol __imp__Nan 
1>..\..\lib\QtScript4.dll : fatal error LNK1120: 2 unresolved externals 

:QtScriptライブラリをコンパイルしながら

は、私は、次のリンカエラーを受け取りました!

おかげ

+0

だから、もう何を試しましたか?あなたはその文書を読んだことがありますか?あなたはインターネットを見ましたか?同じミスを犯してはいけません。 –

+0

これはまったく役に立ちますか? http://developer.qt.nokia.com/wiki/Qt_Library_Cross_Dependencies –

+0

私はインターネットを検索しましたが、有用な結果はまだありません。それは明らかな間違いのようなものです。私は、ハードウェアの問題によってWindows上でこのプロジェクトをコンパイルすることを余儀なくされたLinuxプログラマです。そのため、明らかに何かを見逃してしまう可能性があります。 あなたが知っている、明らかに物事を知っている少数の人々があります;) – Alno986

答えて

1

Windowsを使用している場合、私はあなたがMSVSで構築していると仮定します。私はしばしばデフォルトのlibsなしでプロジェクトを開始します。もし私が別のlibから「手の届かないところに」テリトリーに触れると、私は必要なものを追加します。

幸い、MSVSがこれで私を助けに最適です。リンカ、ショーの進捗状況を表示 - >選択してください

もう1つの方法は、MSDNのMicrosoft機能をチェックして、 libに宣言されて追加されます(VERBOSEは私の貧弱な出力ウィンドウで過度に使用される可能性があるため)。私はQtが詳細なリファレンスドキュメント(libsとも言える)を持っているのかどうかはわかりませんが、それは一発の価値があります。他のすべてが失敗した場合

、ちょうどQtはおそらくしたいことのすべてのlibsを追加しVERBOSEをチェックして、リストだけでそれらを保つ(必ずSTANDARD LIBSが無効になって無視します)。

プロジェクトにすべてのライブラリがあると仮定すると、別の問題は依存関係の不一致です(ソリューションを右クリックして、スタートアッププロジェクト - >必要なものを選択してください、プロジェクト依存関係 - >指定したライブラリの依存関係をマップします)。あなたはlibには、リンカー - >入力で定義されているのexternをインポートするとき

も確認してください。

ただし、ソースを変更した場合(いずれかの新しい機能/グローバルまたは静的VARSを追加したり、関数のシグネチャを変更し)、未解決の外部参照は、機能/ VAR定義に関連付けられている本体を有していないことを意味します。どちらかを実装するか、定義に{}を追加してください。その場合、エラーメッセージから関数/変数を調べてください。

+0

包括的な回答をいただき、ありがとうございます。 リンカーを冗長モードで実行してもいいとは思われません。実際にリンクするライブラリがわからないので、冗長モードでリンカーを実行すると効果がありません。 私はとにかくそれを試みたが、それは助けにはなりませんでした。 私はあなたの2番目の解決策を試みましたが、まだ成功しませんでした。しかし、Qtは自分のPC上にあるすべてのライブラリとリンクすることはできません。Qtはデフォルト設定で必要なものを知っていると思います。 前に私が言ったように、私はLinuxのプログラマーであり、私はWindowsのネイティブlibに慣れていないので、明白な何かが欠けていると思います。 – Alno986

+0

まあ、VERBOSEは各libに必要な機能を示しています。あなたがそれにリンクしていないので、おそらくこれがあなたを助けなかった理由かもしれないので、それは問題かもしれません。 DEBUG対RELEASEのビルドを試しましたか?一方が動作し、他方が動作しない状況があります。 あなたはまた、CEのためにビルドするように修正したと言いました。おそらくいくつかのライブラリがありません...最新のMicrosoft SDKを入手してみてください。これがまだ助けにならない場合は、 Qtで定義されたNanとInfリファレンスは、Qtフレームワークの外で自分のlib \ exeにありますか? – TheNomad