iostream.h, fstream.h не может быть найден

У меня есть машина на 32 бита, и я выполняю Ubuntu 9.10 на ней. У меня есть последний gcc компилятор. Проблема, с которой я сталкиваюсь, состоит в том, что мне разработали библиотеку в 2002. Код является правильным наверняка, но когда я пробую к созданному его, он дает мне, ошибки как iostream.h не могут быть найдены, ошибка: fstream.h: Никакой такой файл или каталог и т.д. и т.д. Существует много файлов следовательно, я не могу изменить их.

Эти ошибки могут быть решены, если решено, я устанавливаю gcc 3.0? Если да, как установить его по моему существующему gcc компилятору.

9
задан user269037 8 February 2010 в 12:15
поделиться

3 ответа

Я написал сценарий для этого немного назад. Вы можете найти его здесь: https://gist.github.com/dound/76ea685c05c4a7895247457eb676fe69

(исходная запись, которую можно просмотреть из archive.org: https://web.archive.org/web/20160208235904/http ://dound.com: 80/2009/04/git-forever-remove-files-or-folders-from-history/)

Сценарий построен на инструменте git-filter-branch , который поставляется с git. Если вам интересно, вы можете прочитать больше об удалении файлов из гит репо здесь , но использование скрипта из ссылки выше должно быть легким и все, что вам действительно нужно для удаления этой частной информации.

-121--2730561-

Возможно, документация вводит вас в заблуждение. Вы написали:

Я понимаю, что промежуточное ПО задает настройки. SITE_ID значение на основе поиска/кэша домена запроса.

Это не так. Это работает точно в другой путь вокруг. Джанго использует настройки. SITE_ID значение для поиска правильного объекта сайт в базе данных. Это возвращает предпочитаемый домен и имя сайта.

Приложение sites было разработано для заполнения (на мой взгляд) редкой базы данных, в которой требуется иметь несколько сайтов с одной базой данных в фоновом режиме. Это позволяет публиковать одни и те же статьи на разных сайтах, но при этом обладает той гибкостью, что некоторые модели доступны только для одного сайта.

Для разработки нескольких проектов (которые фактически не используют рамку сайтов) не нужно указывать ничего особенного. Можно использовать значение по умолчанию SITE _ ID , равное 1 . Для использования представления администратора на веб-сайте можно установить в базе данных разработки домен сайта на localhost: 8000 .

Если требуется создать несколько сайтов с использованием одной и той же базы данных (и использовать рамку сайтов), необходимо иметь каждый проект с определенным идентификатором SITE _ ID , но одним и тем же окружением базы данных. Значения САЙТОВ _ ID в каждом проекте на компьютере разработки в большинстве случаев совпадают с значениями для производственных серверов.

-121--3272200-

Вы имеете дело с предстандартной библиотекой C++, и вы видели, что она не будет компилироваться со стандартным компилятором. Вы всегда можете попробовать быструю работу, создав, скажем, iostream.h с двумя строками # include < iostream > и , используя пространство имен std; , и это может работать. Это ненадежно и может вызвать труднодоступные ошибки, которые появятся в неудобное время.

Если это библиотека из другого места, вы можете увидеть, была ли она обновлена.

Важно понимать, что код больше не верен. Возможно, это было правильно для некоторой реализации в какое-то время, но это не сейчас. (Вы уверены, что изначально это было для gcc 3.0? Предстандартные компиляторы были, ну, не стандартными, и имели много странностей. Избегание этого - то, для чего нужны стандарты.) При установке исходной системывозможно, вы не сможете правильно взаимодействовать с библиотекой, и новый код не будет работать. Библиотека, которая не взаимодействует с современным кодом, используется в ограниченном объеме.

В противном случае вам придется отказаться от позиции, что вы не можете изменить библиотеку, и преобразовать ее в стандартную C++. Вероятно, будет довольно много ошибок, которые довольно легко исправить (например, область в для (int i = 0;...) ), и могут быть некоторые более тонкие проблемы. Возможно, код был верен для определенного компилятора, но это не сейчас.

5
ответ дан 3 November 2019 в 01:55
поделиться

Файл fstream.h и аналогичные файлы являются предварительными стандартными версиями fstream и аналогичных файлов, указанных в стандарт C ++, который поставляется с современными компиляторами. Эти два обычно несовместимы. Откровенно говоря, если за последние 8 лет никто не обновлял библиотеку для соответствия стандарту, вряд ли стоит ее использовать.

4
ответ дан 3 November 2019 в 01:55
поделиться

Почему вы не могли написать сценарий для поиска и замены всех экземпляров

#include <iostream.h>

на

#include <iostream>

И то же самое для других?

Обновление : Я согласен с другим ответом и комментариями ниже ... Я оставлю этот ответ, потому что я не думаю, что утверждение

Есть много файлов, поэтому я не могу измените их

действительно :)

1
ответ дан 3 November 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: