ホームページ >運用・保守 >Linuxの運用と保守 >Linux環境でCプログラムをコンパイルして実行するにはどうすればよいですか? (詳しい説明)

Linux環境でCプログラムをコンパイルして実行するにはどうすればよいですか? (詳しい説明)

青灯夜游
青灯夜游転載
2018-10-25 16:47:564842ブラウズ

この記事の内容は、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 サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。