2016-06-15 16 views
0

別の会社から3つのファイル(demo.c、api.h、libapi.so)が得られます。彼らは開発のために十分ではないと私に言った。私は一緒にこれらのものを構築する方法を混同しています。 gcc demo.c -o demo -l libapi.soを使用します。しかし、それは "ld:ライブラリが見つかりません"と言われています。私はMac OSシステムを使用しています。いくつかのウェブサイトは私がLinuxを使って.soファイルを使うべきだと言った。私は何をすべきか?.c .h .soファイルをコンパイルするには?

+2

'.so'ファイルされていますOSXではありません。 '-l libapi.so'? '-lapi'フラグを試してください。また、非標準ライブラリ '-L /'(これはカレントディレクトリにあることを意味します)の検索パスを提供する必要があります。 – user3078414

+0

soファイルが現在のディレクトリにある場合try -l ./libapi.so –

+0

これは組み込みシステムとは関係ありません。 – Olaf

答えて

-1

* .soは "共有オブジェクト"で、Linux上でのみ動作します。 * .soのWindows対応ファイルはDLLです。これらは組み合わされたオブジェクトコードです。

何がしなければならないことは 1である]] [オブジェクト・ファイルをの.oためにあなた.Cを "コンパイル" 2] "リンク" の.soで新しいの.oファイル

+2

'.so'拡張子を使用する他のシステムがあるかもしれません。 – Olaf

+0

Solarisは共有オブジェクトに '.so'を使います。最新のAIX、IIRCもそうです。 Mac OS Xの通常の拡張子は '.dylib'と' .bundle'です。 –

関連する問題