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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ./configure make для win 
:(
    Опции темы
mrgloom
Дата 26.4.2013, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ну так я не понимаю зачем отдельная утилита make, если там всё сводится все равно к списку команд типа 
Цитата

gcc main.cpp


http://www3.ntu.edu.sg/home/ehchua/program...p/gcc_make.html


так у каждой IDE на Linux свои типы мэйкфайлов или все одному и тому же следуют стандарту?
т.е. возможно ли перенести проекты из разных сред? (например из эклипс в кодблокс?)
или файл проекта отдельно, а мэйкфайл отдельно?  (и если есть файл проекта обязательно ли иметь мэйкфайл?)
PM MAIL   Вверх
xvr
Дата 26.4.2013, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(mrgloom @  26.4.2013,  14:03 Найти цитируемый пост)
ну так я не понимаю зачем отдельная утилита make, если там всё сводится все равно к списку команд типа 

Главная забота make не список команд, а зависимости. Что бы можно было не перекомпилировать то, что не менялось. Когда в проекте сотни файлов это становится очень и очень критично  smile 

Цитата(mrgloom @  26.4.2013,  14:03 Найти цитируемый пост)
так у каждой IDE на Linux свои типы мэйкфайлов или все одному и тому же следуют стандарту?

Сильно зависит от IDE. Некоторые используют make, некоторые вмето этого делают свои собственные системы сборки.

Цитата(mrgloom @  26.4.2013,  14:03 Найти цитируемый пост)
т.е. возможно ли перенести проекты из разных сред? (например из эклипс в кодблокс?)

У code::blocks своя собственная система сборки, т.е. его проект в эклипс перенести нельзя. Что у эклипса - не знаю, не сталкивался. В принципе любой проект (если он не включает сложных процедур в процессе сборки) можно создать заново в любой IDE.

Цитата(mrgloom @  26.4.2013,  14:03 Найти цитируемый пост)
и если есть файл проекта обязательно ли иметь мэйкфайл?

Не обязательно. Тот же C::B яркий пример  smile 

Просто утилита make (именно она, а не ее многочисленные аналоги) является стандартом де-факто для сборки чего угодно. Поэтому все IDE (ну или почти все) либо напрямую ее используют, либо имеют возможность (в добавок к своей системе сборки) запускать ее как внешнюю команду. Но синхронизация того, что написано в Makefile'е и в самом проекте в IDE при этом ложится на плечи самого пользователя.

PM MAIL   Вверх
mrgloom
Дата 29.4.2013, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Сильно зависит от IDE. Некоторые используют make, некоторые вмето этого делают свои собственные системы сборки.


Цитата

Просто утилита make (именно она, а не ее многочисленные аналоги) является стандартом де-факто для сборки чего угодно. Поэтому все IDE (ну или почти все) либо напрямую ее используют, либо имеют возможность (в добавок к своей системе сборки) запускать ее как внешнюю команду. Но синхронизация того, что написано в Makefile'е и в самом проекте в IDE при этом ложится на плечи самого пользователя.



ну так все равно непонятно, зачем 2 дублирующие системы сборки и если make это стандарт, то почему его не все поддерживают? получается в него нельзя "экпортировать" из IDE?

если не использовать VS, а  например code::blocks , то проекты будут переносимы между виндой и линуксом?


вроде есть такой конвертер
http://sourceforge.net/projects/cbp2make/
и еще кодблокс вроде умеет из VS проекты импортировать.
хотя насколько всё это работает это вопрос.
PM MAIL   Вверх
xvr
Дата 29.4.2013, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(mrgloom @  29.4.2013,  09:50 Найти цитируемый пост)
ну так все равно непонятно, зачем 2 дублирующие системы сборки

Это вопрос к авторам IDE. Могу только предположить - т.к. make не имеет какой либо стандартной структуры Makefile'а, а IDE кроме зависимостей еще надо хранить другую информацию (специфичную для самого IDE), то у авторов IDE есть 2 пути:
  •  Делать свой формат
  •  Жестко ограничить формат Makefile'а, что бы IDE могла его использовать и для хранения своей информации.
Хотя есть еще 3й путь - использовать make как есть, и обязать пользователя вручную синхронизировать Makefile и сам проект в IDE (как вы понимаете так никто не делает)  smile 

Цитата(mrgloom @  29.4.2013,  09:50 Найти цитируемый пост)
получается в него нельзя "экпортировать" из IDE?

В него - можно. Из него нельзя

Цитата(mrgloom @  29.4.2013,  09:50 Найти цитируемый пост)
если не использовать VS, а  например code::blocks , то проекты будут переносимы между виндой и линуксом?

В принципе должны быть переносимы

Цитата(mrgloom @  29.4.2013,  09:50 Найти цитируемый пост)
хотя насколько всё это работает это вопрос. 

Можно без проблем отконвертировать практически любой проект в make, и отконвертировать проекты между системами с одинаковыми возможностями build'а. А вот отконвертировать из любого Makefile'а в проект - невозможно.

Приблизительный аналог - можно отконвертировать программу на С в Ассемблер (просто откомпилировав ее), но нельзя отконвертировать программу на Ассемблере обратно в С та, что бы получилась та же самая программа. И конвертирование из С в Ассемблер то же неоднозначное - возьмите другой компилятор, или другие опции, и вы получите другой Ассемблер.

PM MAIL   Вверх
kamre
Дата 6.5.2013, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(xvr @ 26.4.2013,  22:04)
Главная забота make не список команд, а зависимости. Что бы можно было не перекомпилировать то, что не менялось. Когда в проекте сотни файлов это становится очень и очень критично  smile

А как в makefile учитываются зависимости между headers? Они же динамически меняются по мере редактирования файлов.
PM MAIL   Вверх
bsa
Дата 7.5.2013, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



kamre, например gcc умеет генерировать список хидеров, подключаемых к проекту. Таким образом, в makefile может быть правило, по которому при компиляции для каждого измененного исходника создается список хидеров, добавляемых в его зависимости. таким образом, когда ты меняешь хотя бы один из них, то перекомпилируется весь файл. 
PM   Вверх
kamre
Дата 9.5.2013, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(bsa @  7.5.2013,  10:43 Найти цитируемый пост)
Таким образом, в makefile может быть правило, по которому при компиляции для каждого измененного исходника создается список хидеров, добавляемых в его зависимости. таким образом, когда ты меняешь хотя бы один из них, то перекомпилируется весь файл. 

Это что-то специфичное только для gcc? А можно пример такого makefile?
PM MAIL   Вверх
bsa
Дата 11.5.2013, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Посмотри любой makefile созданный с помощью configure (gnu automake)
PM   Вверх
mrgloom
Дата 21.11.2013, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вообщем остановился на cygwin, удобно тем, что это как бы еще и консоль и тем что можно boost например не ставить отдельно, а просто доставить бинарники через гуй.
хотя это решения как раз только чтобы собрать .exe файл, а не сделать солюшн и я до конца всей этой линуксовой кухни так и не понял.
минусы что собранному .exe нужен cygwin и вроде говорят с cygwin работает медленней чем если бы просто собиралось.
PM MAIL   Вверх
bsa
Дата 21.11.2013, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



mrgloom, используй mingw + msys. По сути тоже самое, только кроме двух библиотечек (mingw10.dll и libgcc) ничего лишнего с программой таскать не надо.
PM   Вверх
boostcoder
Дата 7.12.2013, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(drug007 @ 2.4.2013,  17:15)
Еще лучше использовать msys в добавок к mingw - очень хорошая эмуляция никсов. Практически можно будет под виндой собирать никсовые проекты выполняя те же команды. Настройка может потребоваться, конечно, но из коробки много что работает.

недавно, мы выпустили новую версию MSYS2, который, помимо прочего, умеет работать на 64-бит платформе.
любители MSYS, сразу обнаружат приятные плюсы и отзывчивось комьюнити.
https://sourceforge.net/projects/msys2/

Добавлено через 42 секунды
Цитата(kamre @  2.4.2013,  22:05 Найти цитируемый пост)
И как потом подключать плюсовый код, собранный таким образом через MinGW/MSYS, к своему проекту на MSVC?

а это что такое?
PM WWW   Вверх
boostcoder
Дата 7.12.2013, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(bsa @ 21.11.2013,  16:11)
mrgloom, используй mingw + msys. По сути тоже самое, только кроме двух библиотечек (mingw10.dll и libgcc) ничего лишнего с программой таскать не надо.

а если использовать mingw-w64 и ключик '-static' - то вообще ничего таскать не придется.
PM WWW   Вверх
mrgloom
Дата 16.12.2013, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



кстати у Петзолда написано, что для Microsoft Visual С++ версии 4.0. был некий nmake, в VS2008 я *.mak файлов в проекте не обнаружил.

пример
 
Цитата

HELLOWIN.MAK
#------------------------
# HELLOWIN.MAK make file
#------------------------
hellowin.exe : hellowin.obj
$(LINKER) $(GUIFLAGS) -OUT:hellowin.exe hellowin.obj $(GUILIBS)
hellowin.obj : hellowin.c
$(CC) $(CFLAGS) hellowin.c

PM MAIL   Вверх
xvr
Дата 16.12.2013, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(mrgloom @  16.12.2013,  14:57 Найти цитируемый пост)
кстати у Петзолда написано, что для Microsoft Visual С++ версии 4.0. был некий nmake

Это вариант make от MS, и он по прежнему присуствует в VS (C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\nmake.exe в VS 2012)

Цитата(mrgloom @  16.12.2013,  14:57 Найти цитируемый пост)
в VS2008 я *.mak файлов в проекте не обнаружил.

А вот этого больше нет. До VS 6.0 включительно (кажется) была возможность экспортировать проект VS в виде make файла. Потом ввели возможность использовать саму студию для сборки ее проектов в пакетном режиме (с командной строки), и генерацию make файла оторвали

PM MAIL   Вверх
mrgloom
Дата 17.12.2013, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



так зачем теперь нужен nmake.exe ? или он просто используется VS, но напрямую им пользоваться нельзя?
PM MAIL   Вверх
Google
  Дата 26.6.2019, 07:52 (ссылка)  





  Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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