C++プログラムでライブラリを使用する予定です。 Linuxでは開発が行われていますが、アプリケーションはLinuxとWindowsの両方でコンパイルされるように設計されています。私はWindowsの共有ライブラリ(.so)のための直接の等価物はDLLであると理解していますか?WindowsとLINUXでプログラムライブラリを作成する[C++]
g ++を使用するLinuxでは、-fPIC
と-shared
フラグを使用して共有ライブラリを作成できます。 AFAIKでは、共有ライブラリに必要なコード変更はありません。しかし、WindowsのDLLでは状況が異なります。そこでは、dllexportを使用してエクスポートする必要がある機能を指定する必要があります。
私はこの状況をどのように管理していますか?つまり、dllexportはLinuxでは無効です。コンパイラはエラーを起こします。しかし、それはWindowsで必要です。では、コードを変更せずに両方のプラットフォームでコンパイルする関数を作成するにはどうすればよいですか? LINUX
すべてのヘルプは素晴らしいことだ
コンパイラは
- グラム++を使用しました!
ありがとうございました。ウィンドウで作成されたDLLの種類は何ですか?それはCOM dllですか? DLLの地獄の問題に遭遇する可能性はありますか? –
dllexportを使用しても、dllはCOMシステムに公開されません。 dllの可能性は、dllとアプリケーションの配布方法に依存します。あなたのアプリケーションが必要とするdllを常にインストールするならば、このdllに関係する問題は問題ではありません。 –
@sean e:ありがとう。私はいつもDLLのアプリケーションをアプリケーションディレクトリにインストールします。場合によっては、全体のアプリケーションではなく1つのDLLを置き換える小さな更新があるかもしれません。それは問題だろうか? –