今天在用“c/c++编写程序实现:多进程复制一个目录”,在“编译”程序的时候,结果报错如下:
ubuntu@ubuntu-VirtualBox:~$ sudo gcc -o multicopy multi-process-file-copy.c
multi-process-file-copy.c:1:10: fatal error: iostream: 没有那个文件或目录
1 | #include <iostream>
| ^~~~~~~~~~
compilation terminated.
原因:
通过上图的报错也能知道,是 iostream 的问题,而且还是第一行代码:
#include <iostream>
iostream的意思是输入输出流,iostream头文件定义标准输入/输出流对象,包含了操作输入输出流的方法,比如读取一个文件,以流的方式读取;其作用是:让初学者有一个方便的命令行输入输出试验环境。
这里由于我们的写法并没有什么问题。
最主要原因就是:
iostream是c++的头文件,需要使用g++指令而不是gcc。
代码文件命名时,后缀名 .c 和 .cpp 是不一样的。会导致C++的库无法识别。
解决方法:
如果你是新手的话,初识 c/c++ 可能还看不出来。对于 c/c++ 高手来说已经知道原因与解决方法了。
具体解决方法如下:
1、只需要修成为 .cpp 即可。
ubuntu@ubuntu-VirtualBox:~$ mv multi-process-file-copy.c multi-process-file-copy.cpp
2、再次用“gcc编译”成功。
ubuntu@ubuntu-VirtualBox:~$ sudo gcc -o multicopy multi-process-file-copy.cpp
或
"g++编译"成功
root@ubuntu-VirtualBox:/home/ubuntu# g++ -o pthread_copy pthread_copy.cpp -pthread
总结:
在任何时间,细节真的是很重要,特别是编程。