2016-12-10 4 views
0

Macでのターミナルを使用してgccとsshを使ってUbuntuサーバ上の静的ライブラリとヘッダファイルでmain.cをコンパイルしようとしています。 。ライブラリファイルをアップロードし、-Lオプションで指定し、-Iオプションを使用してヘッダファイルを指定しました。-Lパスが指定されていても、GCCは "/ usr/bin/ld:can not find"を表示し続ける

私が使用してみました:

gcc main.c -L/Libraries/lib/libRNA.a -lRNA -ILibraries/include/ViennaRNA 

それはで出てくる:

/usr/bin/ld: cannot find -lRNA

collect2: error: ld returned 1 exit status

答えて

1

-Lは、引数としてディレクトリを期待しています。あなたは図書館の名前を渡しています。

だけで実行します。直接.aファイルの絶対パスと

gcc main.c -L/Libraries/lib -lRNA -ILibraries/include/ViennaRNA 

あるいはリンク:

gcc main.c /Libraries/lib/libRNA.a -ILibraries/include/ViennaRNA 
+0

私は最初のものを試してみましたが、それは言った: は/ usr/binに/ LD:エラー:-lRNA collect2はを見つけることができませんldは1つの終了ステータス を返された私は、第1を試してみましたが、それは言った: GCC:エラー:/ Libraries/lib/libRNA.a:そのようなファイルやディレクトリはありません – Edenapple

+0

私はディレクトリを変更しました。ただし、「ファイルが認識されない:ファイル形式が認識されません」と表示されます。おそらく.aファイルは私のMacの "make"コマンドを使って作成されます。これはubuntuと互換性がありません – Edenapple

+0

はい、ubuntuで.aファイルを再構築する必要があります。 –

0

-Lオプションは、ライブラリファイルがあるディレクトリを指定します。

0

(実際ldに渡される)gccから-Lオプションは、(さらに-lオプションがシークされている)ディレクトリを期待しています。

-Iオプションには、インクルードされたヘッダーファイルを含むディレクトリが必要です。

だから、あなたは本当にすべての警告(-Wall)およびデバッグ情報(-gが)gdbデバッガを使用することができるようにしたい

gcc -Wall -g main.c -L/Libraries/lib/ -lRNA -ILibraries/include/ViennaRNA 

をしたいです。

関連する問題