2011-11-15 14 views
2

私は避けられなかった問題に遭遇しています。 Redhat 6(またはほとんどのlinuxパッケージ)には、/ usr/libと/ usr/includeフォルダにヘッダー/ etcとともにインストールされたデフォルトのQTパッケージが付属しています。Linuxアプリケーションから/ usr/includeパスを除外する方法は?

今、古いバージョンを削除せずにQTの新しいバージョンとリンクしたいと考えています。残念ながら、ヘッダーは/ include /フォルダーにあるので、gccは自動的にそれらを見つけて、間違ったインクルードファイルを使います(別の場所にあるものではなく)。

コンパイラが自動的にこれをやり遂げるのを止められないようです。古いライブラリ/ヘッダを手作業で単純に削除するだけで、これまでに慣れてきましたが、これは長期的にはひどい解決策です。

この問題はQTに固有のものではないと私は考えています。それはちょうど私の現在のインスタンスです。

提案がありますか?

多くの感謝:)

+2

gccにインクルードフラグを変更するだけで済みます - http://stackoverflow.com/questions/558803/how-to-add-a-default-include-path-for-gcc-in-linux –

+0

私はまだ/ usr/include/QtCoreなどのパスを取得し、CPLUS_LIBRARY_PATHのパスは取得しません。私は本当に何をすべきかはわかりません。 – enderland

答えて

1

私の問題は、間違ったバージョンのqmakeが使用されていることに関連していることが判明しました。以前のバージョンのqmakeを見つけていました。qt4からのものですが、間違ったものにリンクしていました。

この問題を解決するためにqmakeパスを更新しました。

+1

これがあなたの問題を解決するために働いたなら、将来の視聴者に何がうまくいったのかを知らせるためにあなたの答えを答えとしてマークしてください。 – Nightfirecat

+2

うん、私はそうするのを待っていた - それは私がこれを行うことができる前に投稿後1時間ほど待つ必要があります:) – enderland

5

あなたは-Iオプションを使用して新しいQtのインストールのディレクトリを含めるを与える場合、それは標準の前に検索する必要があるが、標準を削除する(つまりは/ usr /などが含まれる)のディレクトリが含ま含まQtヘッダーそのものが標準ヘッダーを含んでいる可能性があり、見つからない場合は機能しないことに注意してください)。

しかし、実際に標準のインクルードディレクトリを検索したくない場合は、オプション-nostdincが必要です。

関連する問題