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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определить наличие вызова printf в коде при сборке 
V
    Опции темы
semibug
Дата 12.7.2010, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как заставить вывести оповещение (или ошибку) во время компиляции/линковки если в коде использован хотя бы один вызов printf.
Хотелось бы так: подключаем к большому проекту специальны дополнительный файл, и в случае наличия вызова printf в любом из модулей возникнет ошибка.

PM   Вверх
semibug
Дата 12.7.2010, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Решил путем добавления к опциям компилятора -Dprintf="printf_detected".
PM   Вверх
Alca
Дата 13.7.2010, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



А че за компилер?


--------------------
PM WWW ICQ Skype Jabber   Вверх
Dem_max
Дата 13.7.2010, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



можно конечно было переопределить printf
Код

#define    printf    printf_error


Это сообщение отредактировал(а) Dem_max - 13.7.2010, 09:26


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
boostcoder
Дата 13.7.2010, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(Dem_max @  13.7.2010,  09:26 Найти цитируемый пост)
можно конечно было переопределить printf

а в чем разница? smile 
Цитата(semibug @  12.7.2010,  23:58 Найти цитируемый пост)
Решил путем добавления к опциям компилятора -Dprintf="printf_detected". 


PM WWW   Вверх
Dem_max
Дата 13.7.2010, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



Цитата

а в чем разница? 


разница в том что это -Dprintf="printf_detected" нее во всех компиляторах прокатит


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
boostcoder
Дата 13.7.2010, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(Dem_max @  13.7.2010,  09:59 Найти цитируемый пост)
-Dprintf="printf_detected" нее во всех компиляторах прокатит 

например?
PM WWW   Вверх
semibug
Дата 13.7.2010, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Компилятор RealView.
На счет поддержки опции -D, думаю, boostcoder прав, трудно представить компилятор без оной.
Определять #define в коде не стал, т.к. это потребовало бы включить его во все модули, либо в один, который также пришлось бы подключить к остальным. Во избежании ошибки решил воткнуть через опцию компилятора, а для удобства создал дополнительную конфигурацию сборки которая включает эту опцию.
Всем спасибо.


Это сообщение отредактировал(а) semibug - 13.7.2010, 15:40
PM   Вверх
bsa
Дата 18.7.2010, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 63
Всего: 196



Цитата(Dem_max @  13.7.2010,  10:59 Найти цитируемый пост)
разница в том что это -Dprintf="printf_detected" нее во всех компиляторах прокатит 

Спасибо, поржал. Если есть такой компилятор, у которого эта опция не работает, то этот компилятор является сферическим в вакууме - ЕГО НИКТО НЕ ИСПОЛЬЗУЕТ.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.1065 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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