致命错误:字符串:没有此类文件或目录编译终止

时间:2012-02-03 10:18:23

标签: c++ string g++ header-files

我一直在努力超过3个小时,但找不到解决方案。 一个简单的helloworld程序运行良好,我可以得到输出,

 #include<iostream>
    #include<string>

    using namespace std;
    int main(){
       string s;
       cout<<"hello world";
    }
  

但对于My Sudoku Project,我有以下用户定义的标题   文件,SudokuSolver.h,Matrix.h,Cell.h,Pos.h,Error.h,Exception.h和   他们相应的.cpp文件。

     

ExampleProgram.cpp使用这些头文件来解决数独。

(所有.h和.cpp文件都在同一个文件夹中。)

我已添加using namespace std;,我将字符串包含为#include <string>。 在每个头文件中,无论我在哪里使用string.h。但即使我在运行

时获得fatal error: string: No such file or directory compilation terminated.

g ++ ExampleProgram.cpp SudokuSolver.h Cell.h Error.h Pos.h Matrix.h

当我将ExampleProgram.cpp 编译为

 g++ -c ExampleProgram.cpp SudokuSolver.h
 Cell.h Error.h Pos.h Matrix.h       

我没有错误。

当我使用./a.out运行ExampleProgram.cpp 时,我没有得到我的数独求解器的输出。相反,我得到了我之前运行的helloworld程序的输出。它显示我的ExampleProgram.cpp未成功编译。但正如之前所说的

g++ -c ExampleProgram.cpp  SudokuSolver.h 
    Cell.h Error.h Pos.h Matrix.h       

不会出现任何错误。

这是我的输出:

[fosslab@fosslab SudokuSolver]$ g++ -c Error.h
[fosslab@fosslab SudokuSolver]$ g++ -c Exception.h
[fosslab@fosslab SudokuSolver]$ g++ -c Matrix.h
[fosslab@fosslab SudokuSolver]$ g++ -c Cell.h
[fosslab@fosslab SudokuSolver]$ g++ -c Pos.h
[fosslab@fosslab SudokuSolver]$ g++ -c SudokuSolver.h
[fosslab@fosslab SudokuSolver]$ g++ -c ExampleProgram.cpp SudokuSolver.h Excepti
on.h Cell.h Error.h Pos.h Matrix.h                                             
[fosslab@fosslab SudokuSolver]$ ./a.out
hello world[fosslab@fosslab SudokuSolver]$ 

2 个答案:

答案 0 :(得分:2)

首先,源文件中的头文件是包含。不要将它们添加到编译器的命令行。

其次,g ++的命令行参数“-c”告诉g ++不链接并生成可执行文件,但只生成一个目标文件。

你应该这样做:

$ g++ -c ExampleProgram.cpp
$ g++ ExampleProgram.o

$ g++ ExampleProgram.cpp

在上述两种情况下,您将获得一个新的“a.out”可执行程序。

如果你有几个文件,那么编译它们而不是头文件:

$ g++ -c Error.cpp
$ g++ -c Exception.cpp
$ # etc...
$ g++ -c ExampleProgram.cpp
$ g++ Error.o Exception.o ... ExampleProgram.o

答案 1 :(得分:2)

我知道它已经很晚了,但我的回答可能会帮助那些面临这个问题的人。您很可能在系统上没有libstdc ++ - devel软件包。 请重新检查。我遇到了同样的问题,可以通过安装devel包来解决它。

相关问题