質問

ようにしている変換プログラムとそのプラグインからカスタム実行をCMakeでは、最小限のコードです。

両方のプラグインおよびアプリの共通コード#ifdef...#else...#endifブロックが存在する場合に使用されるの差異に注目し、その原因をあしらったデザインとなっており、コードのようにコンパイルされて、正しいてまいります。の共通コードを含むクラスと呼ばれToolImage.時にコード作成のためのアプリは、ToolImageコンストラクタを使用し異なるリソースパスがベースで作成しているの引き出しおよび設定ができます

#ifdef THE_APP
 ToolImage::ToolImage(const wxString& name, bool full_path_given):wxImage(full_path_given?name:
 (wxGetApp().GetResFolder() + _T("/bitmaps/") + name + _T(".png")), wxBITMAP_TYPE_PNG)
#else
 ToolImage::ToolImage(const wxString& name, bool full_path_given):wxImage(full_path_given?name:
 (theApp.GetResFolder() + _T("/bitmaps/") + name + _T(".png")), wxBITMAP_TYPE_PNG)
#endif
{
 ...
}

のプログラムとそのプラグインいたしましたが、スニーカー Makefileものとして期待される。時として発生したのCMakeを使用しシリーズCMakeLists.txt ファイルを作成した問題があり:プラグインできな荷重にビットマップ、ツールバー.

た追跡問題にToolImageクラスです。行番号による設からのプラグインを使用して間違ったコンストラクタです。straceから同じことをプラグインは、ビットマップのアプリの資源dirではなく、プラグインの資源dir).していることを確認するかの定義をねじ込み、たいの#エラー ToolImage.cpp内部の#ifdefることだけをとりまとめのためのアプリのプラグインが作成せずにエラーとなります。これかのプラグインの作成において、正しくコードです。以降を使用しておりますので間違ったパスかを使用しておりますのでクラスのコンストラクタに集約され、代わりに他のプログラムです。

うめのプラグイン独自のものが使用されてToolImageクラスの代わりに、アプリの?!僕自身のプロジェクトという大きな変化を単に支援ビルの異なる構築システム。

のprecompilerを二つのバージョンのクラスのような貧しい選択肢だった。だけの変更を行うコードな提案をプレロード?

役に立ちましたか?

解決 2

私はこの固定による追加のリンカのフラグ -Wl、-Bsymbolic-機能 のCMakeLists.txt:

set_target_properties( heekscnc PROPERTIES LINK_FLAGS -Wl,-Bsymbolic-functions )

他のヒント

のための実験は、私の追加-fvisibility=隠れたビルドする際theapp、すべてのか、ある特定。この非表示申請のToolImageからの引き出しおよび設定ができます

ではない普遍的な方法として多くの場合のプラグインの使用により異なる記号からの主な実行形式にまとめたものです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top