ファイルmain.c
があります。main.so
を作成します。.soファイルを生成する
main.c
は、libCmodel.so
に依存します。
main.c
は見え
#include <stdio.h>
#include "Cmodel.h" // Must include before Amodel and Bmodel
#include "Amodel.h"
#include "Bmodel.h"
int main(){
..
return 0;
}
libCmodel.so
ファイルが
libAmodel.so.4
に依存し、
libBmodelso.11.
すべて
"*.so"
ファイルは私は、次のコマンドを使用
main.c
と同じディレクトリに存在している、ということを観察することができ
オブジェクトファイルを生成する
gcc -x c++ -fPIC main.c -o main.o -c -I.
main.o
が生成されています。 しかし、正しいコマンドを使用したかどうかはわかりません。上記のコマンドは正しいですか?
その後、私は、上記のコマンドの
g++ -shared -o main.so main.o -L. -lCmodel
g++ -shared -o main.so main.o -L. -lCmodel -lAmodel -lBmodel
g++ -shared -o main.so main.o -L. -lCmodel -lAmodel.4 -lBmodel.11
g++ -shared -o main.so main.o -L. -lCmodel -lAmodel.so.4 -lBmodel.so.11
どちらが正しいか、main.soを生成するには、次のcommadsを試してみましたか? 助けてください
gcc -x C++ -Iを使用しました。 -L。 -lCmodel -Wl、-rpath ,. -o main.o main.c'を実行してmain.cファイルをコンパイルして実行します – john
これは明らかにC言語ではコンパイルされませんが、別の言語であるC++ではコンパイルされません。正しいタグを使用してください。なぜC++コードに '.c'ファイル拡張子を使用するのですか? '.cpp'や' .C++ 'を使い、残りはgccのフロントエンドに任せてください。 – Olaf
これはcppファイルではないcファイルです。だから、私は拡張子として.cを使いました。 – john