1.无选项
gcc test.c
默认生成可执行文件a.out
2.-o 生成的可执行文件名
gcc test.c -o test
3.多个文件一起编译
gcc test1.c test2.c -o test
4.-O选项
gcc -O1 test1.c -o test
作用:使用编译优化级别1编译程序,优化级别为1-3,级别越大优化效果越好,但编译时间越长
5 -g选项 :生成可调试信息
6.链接库的命令
gcc test.c -lm -o test
-lm 表示链接系统的数学库 libm.a
把源文改为utf-8编码就可以了,g++默认的编译编码就是utf-8的,也可以使用-fexec-charset=charset,此选项指定窄字符或窄字符串的字面值常量的内部编码方式,默认为UTF-8。例如指定此选项为GBK,则窄字符或窄字符串常量将会以GBK编码方式存储而不是默认的UTF-8编码方式。
例如:
g++ -fexec-charset=UTF-8 main.cpp -o main.exe && main.exe #include <iostream>using namespace std
int main(int argc, char const *argv[])
{
cout << "你好。" << endl
return 0
}
CreateProcess是WIn内核的函数。你使用的是MinGW G++编译器:
如果你在程序中隐式使用了这个函数,请确保链接器引用到了MinGW组件W32API的库文件kernel32.a。
如果你在程序中显示使用了这个函数,请确保包含里MinGW组件W32API的头文件<windows.h>,以及链接器引用到了MinGW组件W32API的库文件kernel32.a。
如果你使用的不是MinGW的G++编译器:
你可以尝试引用MinGW的W32API库或微软的Platform SDK库,参考以上两条(kernel32.a->kernel32.lib)。
以上或许答非所问。现在回答“仅仅用G++.EXE来编译”的问题:对MinGW G++,如果你只有g++.exe一个文件,你大概可以成功编译不依赖任何外部库的程序,你无法链接因为g++不是链接器(做链接器时引用ld)且大部分情况下都会有外部库的依赖。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)