如何编译和生成.exe?

时间:2016-03-28 05:41:16

标签: linux bash gcc

我的任务:我必须编译一些c / c ++项目,这样我才能获得一个.exe文件,同样对于c / c ++文件,脚本会生成一些“目标文件”。

根据我的阅读,我明白我必须使用gcc bash编译器。 我在线搜索没有成功的gcc参考。我有一些代码行:

class Remap:
    def method2( self ):
        self.x = self.solver.solve

这有什么用吗? “-c”和“-o”参数究竟是做什么的? 有没有人有这个或教程的任何链接,好吗?

1 个答案:

答案 0 :(得分:1)

Linux对文件扩展没有特别严格,因此二进制文件通常不以.exe结尾 从C / C ++源文件创建二进制文件。你需要一个编译器,如GCC for .c和g ++ for .cpp。这些可以从您的Linux发行版存储库管理器中获取,例如opensuse

sudo zypper install gcc g++

编译名为myfile.c的c源文件以创建名为myfile的二进制文件。

cd /path/to/myfile/
gcc -o myfile myfile.c

对于c ++源文件。

$cd /path/to/myfile/
$g++ -o myfile myfile.cpp

对于多个C源文件,您可以创建适当的头文件,并使用ar命令创建静态或共享库,然后链接它们,例如从2个c源文件创建静态库。

$cd /path/to/sources/
$gcc -c myfile1.c myfile2.c
$ar rs libmyfiles.a myfile1.o myfile2.o
$gcc -o main main.c -I/path/to/header-files/ -L/path/to/libmyfiles.a

-c标志创建包含十六进制例程的.o(目标文件),这些例程由ar命令存档并索引到名为libmyfiles.a的静态库中。共享库以.so结尾,需要使用与位置无关的代码(-lfpic)。

但是,当您使用线程头文件pthread.h时,要链接到现有的共享库,例如pthread,您可以按如下方式链接到库。

$gcc -o threadc thread.c -lpthread

在命令行运行主程序

$./mainprog

其中mainprog可以是输出二进制文件的名称。 您还可以查看makefile,以减轻编译大型项目所需的工作量。 还有手册页包含有关编译器标志的信息

man gcc

或者如果您使用KDE。您可以在konqueror浏览器地址栏中插入此格式,以获得格式良好的输出。

man:gcc