Попытка скомпилировать старый (старый) проект cpp. Согласно https://stackoverflow.com/a/13103121/555493, этот проект старше C ++ 98!
Есть ли способ скомпилировать этот проект без какого-либо (незначительного) рефакторинга?
Когда я запускаю команду g++ -std=c++98 -pedantic -ggdb -c file.cxx
ошибается с ошибкой fatal error: 'iostream.h' file not found
,
Примечание: я не автор оригинального кода. Переход на более современную версию C ++, вероятно, не может быть и речи. Так что сейчас я просто пытаюсь собрать его.
Я использую brew, gcc5, на Mac El Capitan.
gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.0.0 (clang-800.0.38)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Есть ли способ скомпилировать этот проект без какого-либо (незначительного) рефакторинга?
Если вам разрешено добавлять файлы .h в проект, вы можете создать iostream.h
со следующим:
#ifndef MY_IOSTREAM_H
#define MY_IOSTREAM_H
#include <iostream>
using namespace std;
#endif
а затем убедитесь, что каталог, в котором находится файл, добавлен в список каталогов для поиска #include
д файлы.
отказ
Это не гарантирует, что вам не придется ничего менять. Кто знает, какие специфичные для платформы функции до C ++ 98 используются в кодовой базе такого старого проекта.
Других решений пока нет …