0

QTLib、RT、Gui の 3 つのプロジェクトで構成されるアプリケーションを作成しました。

Lib は共有ライブラリとして作成されており、RT と Gui で使用されます。

すべての変更をコミットする svn リポジトリを作成しました。私の最初のコンピューターでは、コンパイルやリンクの問題はありません。

2 番目の PC (別の Linux ディストリビューションをインストールした場所) で svn からチェックアウトするとき、Lib と RT をコンパイルしようとすると問題はありませんが、Gui をコンパイルすると、このタイプのエラー メッセージが 10 個表示されます。

/path_to_the_project_folder/lib/core.so:-1: エラー: 「mylibnamespace::Converter::Converter(int)」への未定義の参照

これは、Converter::Converter(int)' が定義されていないことを意味するはずですが、実際には最初の pc で動作します。

svn に古いオブジェクト ファイルが存在する可能性があるが存在しないという事実が原因ではないかと考えていましたが、とにかく、コンパイルする前にクリーンなプロジェクトを実行します。

/etc/ld.so.conflibパスなどでファイルを更新しようとしましたが、すべて問題ないようです。

.pro ファイルは、最初の PC で動作するため、問題ないようです。

助言がありますか?

前もって感謝します

4

1 に答える 1

0

わかりました私は解決策を見つけました..

それはライブラリの順序でした

ライブラリ += -myproj1 -myproj2 ...

LIBS += -myproj2 -myproj1 ... の代わりに

他のPCで機能した理由はわかりませんが、これが解決策です。

于 2013-06-29T07:53:44.713 に答える