C++で書かれたWindowsアプリケーションがあります。その一部はMac OS Xに移植しようとしています。私たちの目標は、ビジネスロジックをいくつかのライブラリにラップし、コントローラーとGUIのトップ。おそらく、同じライブラリを使用しているいくつかの小さなアプリケーションを持っているので、最初の考えはC++コード用の動的ライブラリを使用することでした(より良い方法がない限り)。 しかし、これを達成するにはいくつか問題があります。私たちのダイナミックライブラリはうまくいきます(少なくともそのように見えます)、私たちのアプリケーションにリンクしている.dylibファイルがあります。問題は、私たちのアプリが単に私たちが含めることを試みている.hファイルを見つけることができないということです。 .hファイルがエクスポートされていることと、インストール名がチェックされていること、およびライブラリが正しいディレクトリにあることを確認していることは既に確認済みです。また、ダイナミックライブラリを作成して使用するためのAppleのガイドに従っており、私たちが欠けていた特別なステップも見つからなかった。ここOS Xでダイナミックライブラリを作成して使用する
私の質問は二つの部分である:
- は、我々が何かする前に試してみてくださいインタフェース(すなわち.hファイル)を露出に尽力している欠けているかもしれないいくつかの明白なステップはありますか?
- このプロジェクトで継承した厄介なC++コードには、障害がある可能性があります。たとえば、.hファイルに直接書き込まれたロジック(メソッドの実装)が多くあり、場合によっては対応する.cppファイルもまったく存在しません。したがって、.hファイルは単なるインタフェースの記述ではありません。私たちのアプリはライブラリから.hファイルを見つけることさえできないので、これは(厳粛な)問題ではないかもしれません。 移植が必要なコードベースが本当に大きく、いつものように締め切りが近いので、たくさんのコードを書き直すことは避けてください。
PS:これまでXcode 4.2で作業していただけで、まだコマンドラインツールを試していません。
プロジェクト/ターゲットのビルド設定で、ライブラリのインクルードファイルへのパスを指定していることを確認してください。ヘッダー検索パスまたはユーザーヘッダー検索パス。 –
ヘッダーファイルが(ファイルシステム内で)期待される場所にあることを確認してください。 – arne
実際にはこれは純粋な絶望から成し遂げられました。しかし、これは本当に必要ですか?つまり、ライブラリを配布するときには、ヘッダーファイルも配布する必要があります。したがって、.dylibは完全に自己完結型であるWindowsの.dllファイルと同様に動作しません。 – pajevic