C++ h:没有这样的文件或目录

C++ h:没有这样的文件或目录,c++,c,include,legacy,ostream,C++,C,Include,Legacy,Ostream,我正在尝试使用新的编译器和新的工具(vxWorks的新版本,但这不重要)更新一个旧项目。代码中说: #include <ostream.h> 我查找了错误,许多解决方案都表示要将其更改为: #include "ostream" 这是可行的,但是这是遗留代码,我不想改变所有这些。有没有一种方法可以在不更改代码的情况下更改这些include?好的,您可以创建一个名为ostream.h的文件,该文件只包含一行: #include <ostream> #包括 您可以创建一个

我正在尝试使用新的编译器和新的工具(vxWorks的新版本,但这不重要)更新一个旧项目。代码中说:

#include <ostream.h>
我查找了错误,许多解决方案都表示要将其更改为:

#include "ostream"

这是可行的,但是这是遗留代码,我不想改变所有这些。有没有一种方法可以在不更改代码的情况下更改这些include?

好的,您可以创建一个名为
ostream.h
的文件,该文件只包含一行:

#include <ostream>
#包括

您可以创建一个名为
ostream.h
的文件,该文件只包含一行:

#include <ostream>
#包括

我唯一的问题是,这段代码在不到一周前刚刚修改过,我确定不是每个人都在使用旧的编译器。有没有一种方法可以做到这一点,可能是使用路径或其他什么东西?这解决了直接的问题,但是API也发生了变化,因此可能需要更改代码。通过这种方法,您还需要
使用namespace std,因为古代的标题将所有内容都放在全局名称空间中。就我个人而言,我建议改为对代码进行现代化。关键是使用适当的工具完成适当的工作。c++90!=c++98!=c++11。编译“旧代码”的最佳方法是使用“旧编译器”(或遵循“旧标准”的编译器)。用post'03编译器编译98之前的代码时,总是会隐藏一些潜在的灾难。我唯一的问题是,这段代码在不到一周前刚刚修改过,我敢肯定不是每个人都在使用旧的编译器。有没有一种方法可以做到这一点,可能是使用路径或其他什么东西?这解决了直接的问题,但是API也发生了变化,因此可能需要更改代码。通过这种方法,您还需要
使用namespace std,因为古代的标题将所有内容都放在全局名称空间中。就我个人而言,我建议改为对代码进行现代化。关键是使用适当的工具完成适当的工作。c++90!=c++98!=c++11。编译“旧代码”的最佳方法是使用“旧编译器”(或遵循“旧标准”的编译器)。用P'03编译器编译前98代码总是会隐藏一些潜在的灾难。C++在1998中被标准化。帮自己和未来的自己一个忙,修复遗留代码以符合标准。你将付出一次代价,永远收获收益。仅我的$0.02。请将
用于标准标题。旧代码可能存在其他问题,这些问题不会轻易掩盖。例如,如果遗留代码依赖于编译器在两阶段名称查找方面的松散性,那么在不更改代码的情况下,如何让它与不象旧编译器那样松散的现代编译器一起工作?你应该考虑只修改代码,而不是试图让非标准代码工作。C++在1998中被标准化。帮自己和未来的自己一个忙,修复遗留代码以符合标准。你将付出一次代价,永远收获收益。仅我的$0.02。请将
用于标准标题。旧代码可能存在其他问题,这些问题不会轻易掩盖。例如,如果遗留代码依赖于编译器在两阶段名称查找方面的松散性,那么在不更改代码的情况下,如何让它与不象旧编译器那样松散的现代编译器一起工作?你真的应该考虑只修改代码而不是试图让非标准代码工作。