gcc/g++编译 cpp/c文件 生成可执行文件


g++编辑cpp生成exe

编译重命名等:

g++ –c Hello.cc  编译文件,生成目标文件 Hello.o

g++ Hello.o –o abc  连接 并重命名为可执行文件 abc

g++ Hello.cc    编译连接一起,生成a.out

g++ Hello.cc –o hello 生成a.out并命名为hello

多文件编译

g++ hellospeak.cpp speak.cpp -o hellospeak


g++命令:

下面以helloAtom.cpp为例:

[cpp]  view plain  copy
  1. #include <iostream>  
  2. using namespace std;  
  3. int main()  
  4. {  
  5.   cout<<"hello atom"<<endl;  
  6. }  

命令: g++ helloAtom.cpp
功能:生成默认为helloAtom.exe的文件,这个过程包含了编译和链接。
再说下-o命令,-o命令表示输出的意思,gcc/g++命令是非常灵活的,你不指定输出的文件名的时候默认生成的是.exe文件。
你要输出helloAtom.exe的话可以用:g++ -o helloAtom.exe helloAtom.cpp。-o命令是输出的意思,这样就输出了helloAtom.exe。

运行cmd 后直接进入EXE 文件目录,直接输入EXE 的文件名即可


问题

 

gcc编译出现undefined reference to 'pthread_create'的解决方法


 在linux上执行gcc thread.c,  结果出现编译错误undefined reference to 'pthread_create'。由于pthread库不是标准linux库, 所以出错。 改为gcc thread.c -lpthread 即可。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
很抱歉,作为一个AI语言模型,我无法提供附带实验过程截图的答案。不过我可以为您提供Shell脚本代码以及代码解释,供您参考。 1)实现从键盘读取两个数,并比较两个数大小,并打印结果。 ``` #!/bin/bash echo "请输入第一个数:" read num1 echo "请输入第二个数:" read num2 if [ $num1 -gt $num2 ]; then echo "$num1 大于 $num2" elif [ $num1 -lt $num2 ]; then echo "$num1 小于 $num2" else echo "$num1 等于 $num2" fi ``` 代码解释: - `echo` 命令用于输出提示信息。 - `read` 命令用于从键盘读取输入,将输入存储到变量 `num1` 和 `num2` 中。 - `if` 命令用于比较两个数的大小,根据比较结果输出不同的信息。 - `-gt` 操作符用于判断大于,`-lt` 操作符用于判断小于。 2)实现读取文件的每一行 ``` #!/bin/bash echo "请输入文件名:" read file while read line; do echo "$line" done < $file ``` 代码解释: - `echo` 命令用于输出提示信息。 - `read` 命令用于从键盘读取文件名。 - `while` 命令用于循环读取文件的每一行,`read` 命令用于读取文件的每一行并存储到变量 `line` 中。 - `<` 操作符用于将文件内容输入到循环中。 3)把当前目录(包含子目录)下所有后缀为“.txt”的文件后缀变更为“.h” ``` #!/bin/bash for file in $(find . -name "*.txt"); do mv "$file" "${file%.txt}.h" done ``` 代码解释: - `for` 命令用于遍历当前目录(包含子目录)下所有后缀为 `.txt` 的文件。 - `find` 命令用于查找文件,`-name` 选项用于指定文件名模式。 - `mv` 命令用于重命名文件,`${file%.txt}.h` 表示将 `.txt` 后缀替换为 `.h` 后的新文件名。 4)编写make文件实现编译c或c++代码。 ``` CC=gcc CFLAGS=-Wall -g SRC=$(wildcard *.c) OBJ=$(SRC:.c=.o) TARGET=program $(TARGET): $(OBJ) $(CC) $(CFLAGS) $^ -o $@ %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ clean: rm -f $(OBJ) $(TARGET) ``` 代码解释: - `CC` 变量用于指定编译器,`CFLAGS` 变量用于指定编译选项。 - `SRC` 变量用于指定源文件,`OBJ` 变量用于指定目标文件。 - `TARGET` 变量用于指定目标程序名。 - `$(TARGET)` 表示目标程序依赖于所有的目标文件,`$(CC)` 命令用于链接目标文件生成目标程序。 - `%.o: %.c` 表示每个目标文件依赖于对应的源文件,`$(CC)` 命令用于编译生成目标文件。 - `clean` 用于清理目标文件和目标程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

life1024

你的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值