Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705

Как в DEV C++ добавить опцию компилятора *cpp?

21.04.2011, 10:45. Показов 5144. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья! У меня в папке несколько файлов с расширением cpp и они все должны быть включены в компиляцию. Так, а по умолчанию компилятор компилит только ОДИН файл, а остальные должны быть подключены к нему явно
C++
1
#include "drugoi_fail.cpp"
Это плохо. Теперь, если компилить все эти файлы из командной строки:

C++
1
g++ *.cpp
То всё вроде бы ОК, опция *.cpp говорит, что надо компилить все файлы *.cpp
Но если добавить эту опцию к опциям копилитора СТАНДАРТНЫМ ПУТЁМ, то есть прописать её в соответтвующем окошке, то получается, что главный файл включается ДВАЖДЫ, то есть
C++
1
g++ main.coo *.cpp
это всё равно что

C++
1
g++ main.coo main.cp <другой_файл_.cpp>
Ага и получается две функции main.cpp, линковщик ругается на это.
Что делать, друзья? По идее надо смотреть где находятся опции которые по умолчанию и изменять их, а не добавлять. Но я не могу их найти. Всё уж перерыл. Извините, если что не так. Ваш kravam
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2011, 10:45
Ответы с готовыми решениями:

Непонятная ошибка компилятора Dev-Cpp
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; void s(int a) { cout&lt;&lt;a&lt;&lt;endl; } class matrix ...

Как подключить файл ресурсов Dev-Cpp
Ну могу подключить файл ресурсов на Dev-Cpp файл: #include &lt;windows.h&gt; #include &quot;main.h&quot; ID_MENU MENU BEGIN POPUP...

Предлагаю людям как усовершенствовать IDE Dev-Cpp 4.9.9.2
Значит, напомню, среда это давно не развивается уже. Если вы скачаете её, то в предлагаемых пакетах к этой среде последний g++ версии аж...

11
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
21.04.2011, 12:50
А разве в DEV-C++ нету стандартной возможности создавать проект из нескольких файлов? Тогда IDE автоматически настроит все строки запуска так как надо
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.04.2011, 13:13  [ТС]
Есть, но это заморочки. Это нужно не просто так, а тыкать на "создать проект", да не абы какой, а "консольное приложение", ну и прочее всё в таком же духе. Мне бы хоть какой конфигурационный файл с командной строкой увидеть, я бы вручную поменял его и всё.

А щас не знаю, что делать, склоняюсь к тому, что кропать экзешник, который переделывал бы СВОЮ командную строку и заменять им стандартный компилятор g++. IDE вызовет g++, но он будет уже подменён! И вместо вызова g++ будет вызван мой экзешник, который поправит командную строку, а потом вызовет g++ и передаст ему ИСПРАВЛЕННУЮ командную строку.

Как-то так. Щас штутдирую опции g++ и удивляюсь, как там нет опции "включить все *.cpp файлы"
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
21.04.2011, 13:35
Я просто DEV C++ не видел, но ты по-моему каким-то мозахизмом занимаешься. Если ты пользуешься IDE, то играй по её правилам. Если хочешь делать по своему - компиляй без IDE а пиши свои Makefile'ы или скрипты компиляции

Цитата Сообщение от kravam Посмотреть сообщение
Как-то так. Щас штутдирую опции g++ и удивляюсь, как там нет опции "включить все *.cpp файлы"
Опять-таки не совсем понятно, что ты под этим подразумеваешь. Если ты внимательно прочтёшь документацию, то там так же нет опции "вскопать огород". Потому что твоё желание от этого отличается не сильно. В компилятор ты должен подать файлы, какие хочешь скомпилять. Понятия "все файлы" нету в принципе ни у одной программы, потому что "все файлы" должен передавать пользователь

Добавлено через 4 минуты
Кажется понял, в чём втоя непонятнка. В винде конструкцию "*.cpp" должна обрабатывать программа. В юниксе - это конструкция shell'а. Т.е. при запуске "g++ *.cpp" сам shell запустит строку "g++ t1.cpp t2.cpp t3.cpp". gcc он изначально юниксовый, а потому в его исходниках в приницпе нет обрабатывания каких-бы тони было регулярных выражений из командной строки
1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.04.2011, 13:47  [ТС]
Ну ладно хоть поняли. Я бы и компилил сам, но дело в том, что я не знаю g++, мне очень трудно в нём разобраться. Я это всё возлагал на IDE и она меня всем устраивала и устраивает, кроме вот этой детали. Не хочу отказываться от удобства нажимать кнопку F9.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
21.04.2011, 14:42
Цитата Сообщение от kravam Посмотреть сообщение
Не хочу отказываться от удобства нажимать кнопку F9
Тогда делай так, как того требует IDE. Чем меньше будешь извращаться, тем меньше будет проблем.

Если ручками компилять, то:

Code
1
2
3
4
$ g++ t1.cpp -c -o t1.o
$ g++ t2.cpp -c -o t2.o
$ g++ t3.cpp -c -o t3.o
$ g++ t1.o t2.o t3.o -o a.exe
Если нужны оптимизации, то дополнительно подавай опции -O1, -O2 или -O3 (чем выше уровень, тем теортеически код лучше, но время компиляции дольше). По опции -Wall выдаётся основная масса полезных предупреждений. По опции -Wextra - ещё куча предупреждений. По опции -Werror предупреждения будут трактоваться как ошибки. Для начала вроде бы этого достаточно

Если нужно Makefile написать - почитай тут Makefile: как с использованием gcc строить автоматические зависимости от .h файлов?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.04.2011, 16:39  [ТС]
Чё-то я подумал-подумал и отказался дублировать функционал IDE; тем более тут есть одна тонкость- написать-то прогу такую не так и сложно, но тут есть одно но. Можно сделать так, что она будет работать СО ВСЕМИ файлами *.cpp, находящимися в папке. Но в том-то и дело, что я ошибок не оберусь потому, что в процессе работы у меня в папке много левых файлов *.cpp, не относящихся к компилируемому никоим боком, черновые так называемые файлы.

Можно извратиться и указывать компилируемые файлы явно. Так это то и выйдет, что мне предлагает IDE.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
21.04.2011, 17:16
Цитата Сообщение от kravam Посмотреть сообщение
Можно извратиться и указывать компилируемые файлы явно
Наоборот. Это и есть нормальный режим работы. А указывать *.cpp - извращение. Случай, когда краткость НЕ есть сестра таланта
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.04.2011, 17:30  [ТС]
Что и я имею ввиду:
Щас IDE пердлагает: включить тот-то файл в проект или нет, потом тот-то файл, тот-то, тот-то и тот-то (не прописывать в инклудах, а в настройках галки ставить)

Удобно? Более или менее. Скропать прогу с подобным интрерфейсом я смогу, но зачем, если такой интерфейс предлагает DEV? Вот собсно сизифов труд и будет. Извращение и есть.

Что касаемо *.cpp, то использование его просто напросто непродуктивно в данном случае. Вообще же регулярные выражения благо, значение которого трудно переоценить, постоянно ищу строки в инклудах так:
C++
1
FIND "NULL" *.h > <имя файла>.txt
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
21.04.2011, 18:07
Цитата Сообщение от kravam Посмотреть сообщение
Удобно? Более или менее. Скропать прогу с подобным интрерфейсом я смогу, но зачем, если такой интерфейс предлагает DEV? Вот собсно сизифов труд и будет. Извращение и есть.
В DEV C++ я не работал (и даже не видел, как оно выглядит). Но я видел, как это сделано в Borland'е и MSVS. Нужно добавить файл - взял и добавил без геморроя. Не надо никуда никаких галок ставить. Либо ты что-то делаешь не так, либо в DEV C++ сие криво реализовано (в последнее верится с трудом, даже несмотря на то, что это открытая бесплатная среда)
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
21.04.2011, 18:18  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
Нужно добавить файл - взял и добавил без геморроя
Завидую я им. Только подумал- и файл добавился...
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
21.04.2011, 18:23
"без гемора" и "подумал и добавился" - как бы разные вещи. Хотя уже пошёл какой-то флуд, так что я откланиваюсь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.04.2011, 18:23
Помогаю со студенческими работами здесь

Как в Dev-Cpp (С++) скомпилировать исходный код в exe файл?
Написал простейший код: #include int main() { std::cout &lt;&lt; &quot;Hello!&quot;; } Оно его компилирует в exe файл, но он...

Как создавать программы с графическим интерфейсом в среде Dev-cpp?
Прошу, помогите, пожалуйста, сделать программу с графическим интерфейсом в Dev-cpp. Пока не могу даже разобраться с библиотеками. Уже...

Не могу исправить ошибку :113 H:\Dev-Cpp\Проекты\уроки\Безымянный3.cpp cannot convert `IDirectDraw7**' to `IDirectDraw**' for argument `2' to `HRESULT DirectDrawCreate(GUID*, IDirectDraw**, IUnknown*)
Недавно начал изучать оконные программы и работу с DirectX. Но при написании программы столкнулся с проблемой: не могу исправить одну...

Библиотека (.h + .cpp) в папку include компилятора
Здравствуйте! Написал библиотеку с вынесенным в разные файлы интерфейсом и реализацией (lib.h и lib.cpp), всем функциям в .h приписал...

gotoxy в dev cpp
как записать этот оператор в dev cpp ? gotoxy(1,4); пишет `gotoxy' undeclared (first use this function)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru