この記事の内容は、Linux 環境で C プログラムをコンパイルして実行する方法を紹介することです。 (詳しい説明)。困っている友人は参考にしていただければ幸いです。
1 単一ファイルのコンパイルと実行
次の内容を含む main.c ファイルを作成します:
#include <stdio.h>#include <stdlib.h>int main(void){ printf("Hello world!\n");return 0; };
コンパイル:
gcc -o main main.o
実行:
root@ubuntu:/ybg/python# ./main Input an integer:10sum=55
2 複数のファイルのコンパイルと実行
次の内容の sum.c ファイルを作成します:
#include <stdio.h>#include <stdlib.h>int sum(int x){int i, result=0;for(i=0; i<=x; i++){ result+=i; }if(x > 100) exit(-1);return result; };
main を作成します。次の内容の c ファイル :
#include <stdio.h>#include <stdlib.h>int main(void){int x; printf("Input an integer:\n"); scanf("%d", &x); printf("sum=%d\n", sum(x));return 0; };
Compile
gcc -c sum.c -fPIC -o sum.ogcc -c main.c -fPIC -o main.o
実行可能ファイルを生成します。ファイル名は main
gcc -o main sum.o main.o
実行プログラム
./main
実行結果は上記と同じです。
3 ダイナミック リンク ライブラリ メソッドを使用します。
ダイナミック リンク ライブラリを生成します。
gcc sum.o -shared -o sum.so
実行可能ファイル、ファイルを生成します。 name は main
gcc -o main sum.o main.o
Execute
./main
次のエラーが報告された場合、生成された sum.so がデフォルトのダイナミック リンク ライブラリ パスに見つからなかったことを意味します
./main: 共有ライブラリのロード中にエラーが発生しました: sum.so: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません
次のコマンドを実行して、現在のディレクトリをダイナミック リンク ライブラリの検索パス環境変数に追加します
export LD_LIBRARY_PATH=pwd:$LD_LIBRARY_PATH
再度実行
./main
実行結果は上記と同じ
4 Pythonは.soダイナミックリンクライブラリを呼び出します
次の内容を含む test.py ファイルを作成します:
import ctypes so = ctypes.CDLL('./sum.so')print "so.sum(50) = %d" % so.sum(50)
Execute
root@ubuntu:/ybg/python# python test.py so.sum(50) = 1275
以上がLinux環境でCプログラムをコンパイルして実行するにはどうすればよいですか? (詳しい説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。