Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> огрехи кроссплатформенной сборки... 
:(
    Опции темы
En_t_end
Дата 23.2.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Есть класс, юзающийся в кроссплатформенной либе. Нужно решить проблему со сборкой под IDE VISUAL STUDIO 7.1.
Необходимо, чтобы к cpp был прежде всех файлов подключен "stdafx.h", у меня кроссплат. и кросскомпил. реализованна на основе препроцессорных директив. Но тут проблема... директива, нужная для сборки в выше написанной IDE определена в заголовочном файле параметров. Получается такой колапс:
cpp:
Код

//*******
//#include "stdafx.h"
#include "param.h" /*здесь определена PLFRM_CMPL_WINNT_VS6_7*/

#ifdef PLFRM_CMPL_WINNT_VS6_7
#include "stdafx.h"
#endif //PLFRM_CMPL_WINNT_VS6_7
//*********

Говорит в любом случае - unexpected #endif.
Что делать ? В принципе я могу отказаться от Precompiled Headers в пользу кроссплатформенности, однако, как отключить их? через #pragma ? Стоит ли это делать ?
PM MAIL ICQ Skype GTalk Jabber   Вверх
ManiaK
Дата 23.2.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 5
Всего: 29



En_t_end, прекопилирование заголовочных файлов в VC 6.0 отключается в настройках проекта::компилятора. В VC 7.1 думаю тоже самое должно быть. Никогда не видел особой пользы в этой опции...
PM MAIL WWW   Вверх
En_t_end
Дата 23.2.2006, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



ManiaK
Я понимаю... мне надо отключать их при прогонки кода препроцессором, то есть директивой #pragma. Кстати польза может и есть...постоянная сборка windows.h со всеми вытекающими отсюда последствиями, однако у меня другой случай.
PM MAIL ICQ Skype GTalk Jabber   Вверх
En_t_end
Дата 23.2.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Короче вопрос остается открытым, пока я не вижу рационального выхода из данной ситуации, может кто-то уже занимался сборкой кроссплатформенных исходников, поделитесь опытом, если не влом.
PM MAIL ICQ Skype GTalk Jabber   Вверх
Daevaorn
Дата 23.2.2006, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



En_t_end,
Я не знаю чем именно ты собираешь проект(make или ещё что-то), но почти во всех подобных утилитах есть возможность добавлять дефайны при компиляции. Т.е. я предлагаю не в коде определять компилятор, а во внешнем "скрипте" и добавлять дефайн при с опцией /D компилятора. Я когда собираю под разные платформы/компиляторы этим часто пользуюсь, хотя от прекомпилед хидеров отказался...
PM MAIL WWW   Вверх
En_t_end
Дата 24.2.2006, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Я уже тоже отказался от Precompiled Headers, но вот думаю рановато. К примеру g++ ИМХО их держит, правда придется делать несколько Precompiled Headers source для каждого компилятора и платформы - пока либа мелкая, мне это не надо, как только разрастется - придется support их обеспечивать.
PM MAIL ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0489 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.