быдлокодер
![]() 1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,695
|
||||||||||||||||||||||||||||||||||||
Необходимо разобраться с директивами условной компиляции27.01.2012, 20:51. Показов 3266. Ответов 23
Метки нет Все метки)
(
Друзья! Боюсь, что без предисловий не обойтись. Постараюсь, чтобы они были короткими. Поехали:
Часть кода:
Лезу в include\semaphore, вижу:
Ну волт, собсно говоря и всё. В былые времена я бы приписал не задумываясь:
Препроцессорные директивы в C/C++ (#include, #define и прочее) помогут мне просто написать:
0
|
27.01.2012, 20:51 | |
Ответы с готовыми решениями:
23
Немогу разобраться с директивами Директивы условной компиляции
|
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
|
|||
27.01.2012, 21:28 | |||
0
|
![]() 3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
||||||
27.01.2012, 21:34 | ||||||
0
|
быдлокодер
![]() 1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,695
|
||||||
27.01.2012, 21:55 [ТС] | ||||||
retmas, а как определил? Мне чтобы знать на будующее
Добавлено через 14 минут ...А вообще, retmas, это как-то не того... Я увидел
__MINGW32__ А тут получается, mode_t определяется безусловно. ОНо, конечно, компильнётся, но моя цельь была не столь компиляция, сколько разобраться с директивами, да вот хотя бы с той же __MINGW32__ Она ведь не определена нигде! Так как сделать, чтобы она была определена?
0
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
27.01.2012, 22:01 | |
не смотри на конкретные реализации. маны - вот твой источник инфы.
semaphore.h не обязан хоть как то (явно или косвенно) определять, что такое mode_t Добавлено через 1 минуту кстати semaphore.h - думаю не последний заголовок, где ты столкнешься с подобным
0
|
быдлокодер
![]() 1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,695
|
|
27.01.2012, 22:07 [ТС] | |
retmas, у меня windows, вопрос остался
Добавлено через 2 минуты NoMasters, я не понимаю, у нас есть возможность разобраться, так почему бы не разобраться? Я хочу разобраться, а не обманывать проепроцессор. Кстати раньше я всегда так и делал, если чё-то было неопределено или определено условно, я просто рядышком писал безусловное определение и всё, а теперь хочу понять как надо сделать правильно.
0
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
27.01.2012, 22:10 | |
ну и что, что windows. ты ж используешь реализации posix ф-ий (или я не прав?). а маны и в сети есть. про __MINGW*__ тебе уже ответили - определена всегда, когда используешь соответствующую mingw сборку
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
27.01.2012, 22:20 | ||||||
может перед ключением sepaphore.h стоит включить файл, в котором задефайнен PTW32_CONFIG_H.
Гугл ссылается на некий config.h. Может где-то в другом месте есть дефайн. т.е. чтобы собиралось может оказаться выжным порядок включения инклудов
0
|
быдлокодер
![]() 1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,695
|
||||||||||||||||||||||
27.01.2012, 22:29 [ТС] | ||||||||||||||||||||||
Да вы чё прицепились к этой __MINGW32__?, речь идёт о цепочке определений (и если уж рассматривать эти макросы по отдельности, тогда уж надоначинать с HAVE_MODE_T, ибо он В КОНЕЧНОМ ИТОГЕ определяет, будет определён тим mode_t или нет) 1) Сперва препроцессор смотрит, определена ли PTW32_CONFIG_H
И слава Богу у меня это всё под рукой оказалось я могу всё это выяснить, а дальше не могу. Размышляю так: 1) Коль скоро mode_t неопрелделено значит, неопределено и HAVE_MODE_T 2) Коль скоро HAVE_MODE_T неопределено, неопределено и __MINGW32__ 3) Коль скоро __MINGW32__ неопределено, неопределено и PTW32_CONFIG_H (retmas, где я неправильно рассуждаю?) Всё, выводы закончились. Что значит "Неопределено PTW32_CONFIG_H", я не знаю. Может, мне подключить что надо, может прописать что надо. К советам: напиши
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
27.01.2012, 22:32 | ||||||
ну т.е. при сборке в 32битной винде должна срабатывать ветка.
0
|
быдлокодер
![]() 1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,695
|
||||||
27.01.2012, 22:35 [ТС] | ||||||
DU,именно должна эта ветка сработать, но не срабатывает!
Добавлено через 2 минуты Да не, у меня именно mingw и
0
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|||||||||||
27.01.2012, 22:39 | |||||||||||
kravam, HAVE_MODE_T определяется тут:
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||
27.01.2012, 22:45 | ||
а как правильно переводится:
К чему тут относится слово "который"? к копипасту или к config.h. Если второй вариант, то получается, что нужно как-то задействовать config.h
0
|
быдлокодер
![]() 1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,695
|
||
27.01.2012, 22:52 [ТС] | ||
Хм, получается последняя директива такая: если
HAVE_MODE_T неопределено, то следует определить mode_t Так, mode_t не определяется. Ладно, то есть мы всё делаем правильно и необходимо определить mode_t вручную или подключить sys\types.h (что по-моему одно и то же) А тогда возникает вопрос: смотри, препроцессор НАРОЧНО не определяет mode_t, а мы как бы наперекор идём препроцессору; тебя не смущает это?
но теперь осталось только вернуться к вопросу- а откуда было узнано о sys\types? По-моему где-нибудь в комментах semaphore.h должна была быть строка "подключите sys\types.h", тогда всё стало бы на свои места, но ведь такой строки нет!
0
|
27.01.2012, 22:52 | ||||||
Помогаю со студенческими работами здесь
20
Применение директив условной компиляции arduino ошибка условной компиляции в NewLiquidCrystal [РЕШЕНО] Директивы условной компиляции в AVRSTUDIO4
Символ условной компиляции для конфигурации Trial Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
|
Полностью асинхронный счётчик на логике (сумматорах) трёх состояний и асинхронных регистрах трёх состояний. Структура "электронный Buttom Up"
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution
В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
|
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
|
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
|
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
|
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
|
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
|
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
|
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
|
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
|