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

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

21.04.2011, 10:45. Показов 5096. Ответов 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,698
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,698
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,698
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,698
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,698
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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru