2017-02-27 4 views
2

現在、C++用のIDE用にCodeLiteを使用しています。 IDEには多くの機能があり、私はこれを楽しんでいます。インターフェイスはかなりシンプルです。CodeLiteを使用していないグローバルコンパイル設定またはプロジェクトコンパイル設定

最近、wxWigetsのコードを3.0から3.1に移動しています。私が見つけた3.1に排他的な多くの関数があり、私のC++アプリケーションの開発に最も役立ちます。最も注目すべきは、wxWindow :: FromDIP関数です。

オンラインからwxWidgetsソースを取得して正常にコンパイルできました。私はプロジェクトフォルダを右クリックし、C++コンパイラ設定に行き、コンパイルされたwx-3.1ライブラリ(/usr/local/include/wx-3.1)の場所を確実に含めるようにしました。

テストとして、コードの一部でFromDIP()関数を追加しました。コード補完は私が入力したものを拾うことができ、FromDIP()関数を "見る"ことができました。

私がプロジェクトをビルドすると、ビルドは、私がFromDIP機能を持っていたすべてのポイントで失敗しました。 ITはそれが認識できないと言っていました。

次にグローバルコンパイラ設定(設定 - >ビルド設定 - >(自分のコンパイラを選択) - >詳細)に移動し、wx-3.1コンパイル済みライブラリのインクルードパスに追加しました。

また、ビルドに失敗しました。私はプロジェクトC++コンパイラの設定に戻り、グローバル設定をプロジェクト設定をオーバーライドするように設定します。

また、ビルドに失敗しました。

/usr/bin/g++-4.9 -c "/home/phillip/GitHub/Omni-FEM/src/UI/BoundaryDialog/BoundaryDialog.cpp" -g -O0 -fopenmp -std=c++11 -Wall -lglut -lGL -lGLU -I/usr/lib/x86_64-linux-gnu/wx/include/gtk2-unicode-3.0 -I/usr/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -o ./Debug/src_UI_BoundaryDialog_BoundaryDialog.cpp.o -I/home/phillip/GitHub/Omni-FEM/Include -I/usr/local/include/wx-3.1 -I/usr/include/wx-3.0-unofficial -I/usr/include/GL -I/usr/local/include/wx-3.1 

は不正-Iは/ usr/inlcude/WX-3.0コンパイラの設定があります:

は私が出力されたものをGCCに見えました。このコンパイラの設定は、wx-3.1(オプションが後で表示されることがわかります)を使用したい場所をオーバーライドしていると思います。もちろん、CodeLiteが3.0でコンパイルしようとすると、関数が存在しないため、ビルドに失敗します。私はこの設定がどこにあるかを見つけるためにすべてのメニューを見てきましたが、何も見つかりませんでした。

私の質問はこれです、私はコンパイラの設定を変更する必要がある他の場所がありますかもしそうなら、私はそれを見つけることができますか?あるいは、何か別のことをする必要がありますか?どこかの設定を上書きするのと同じように?

答えて

2

デフォルトでは、CodeLiteはwx-configツールを使用して、コンパイラに必要な正しいパスと定義を取得します。

あなたがする必要があるのは、正しいwx-configツールが使用されていることを確認することだけです。 これを行うには、端末wx-config --cflagsから入力して、どのフラグが端末に出力されているのかを確認してください。

はあなたがいない(とはならない)を手動だけで、コンパイラのパスを追加します。 Project Settings->Compiler->Compiler optionsあなたは$(shell wx-config --cxxflags)を持っているとProject settings->Linker->Linker optionsにあなたがグローバルパスについて$(shell wx-config --libs)

を持っていることを確認することを確認してください:あなたは追加しないでくださいあなたがしていることを本当に知っていなければ、これらのパスは、wxWidgetsに関係のない作業領域であっても、すべての作業領域で使用されます。すべてのプロジェクト設定をワークスペースレベルに設定する必要があります(この方法は、プロジェクトを他の人と共有する場合にも同様です)

複数のwxWidgetsがインストールされている場合は、正しいwx-configが使用される。これを行うには、以下のいずれかの操作を実行することができます:あなたが使用することを/usr/loca/bin/wx-configをしたいと仮定すると、

  • を、Project Settings->Compiler->Compiler OptionsでそうPATH=/usr/local/bin:$PATH
  • 使用フルパスwx-configに次の行を追加することでSettings->Environment variablesからCodeLiteでPATH環境変数を更新このオプションを使用してください$(shell /usr/local/bin/wx-config --cxxflags)Project settings->Linker->Linker Optionsで同じことをしてください)
+0

ありがとうございます。 -i/usr/local/include/wx-3.1 -D_FILE_OFFSET_BITS = 64 -DWXUSINGDLL -D__WXGTK__の出力は、wx-config --cflagsの出力です。-I /usr/local/lib/wx/include/ gtk2-unicode-3.1 -I/usr/local/-pthread。残念ながら、元の設定に戻して、Include Pathsのエントリを削除し、$(shell wx-config)がC++コンパイラオプションになっていることを確認した後、エラーを受け取っています。私はまだ取得しています:-g -O0 -fopenmp -std = C++ 11 -Wall -lglut -lGL -lGLU -I/usr/lib/x86_64-linux-gnu/wx/include/gtk2-unicode-3.0 -I /usr/include/wx-3.0 -D_FILE_OFFSET_BITS = 64 -DWXUSINGDLL -D__WXGTK__ – philm

+0

正しい 'wx-config'が使用されていることを確認してください。 'which wx-config'と入力すると何が得られますか? – Eran

+0

を出力すると、 '/ usr/local/bin'に2つの' wx-config'があり、 '/ usr/bin'に1つあります。 – Eran

関連する問題