我的任务:我必须编译一些c / c ++项目,这样我才能获得一个.exe文件,同样对于c / c ++文件,脚本会生成一些“目标文件”。
根据我的阅读,我明白我必须使用gcc bash编译器。 我在线搜索没有成功的gcc参考。我有一些代码行:
class Remap:
def method2( self ):
self.x = self.solver.solve
这有什么用吗? “-c”和“-o”参数究竟是做什么的? 有没有人有这个或教程的任何链接,好吗?
答案 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