Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > VS Проект -> GNU make |
Автор: SIRIUStar 21.10.2008, 16:52 |
Всем привет! Извините, я может не по теме, но всетаки вопрос: Есть некий кросплатформенный проект написанный в среде Visual Studio 2008, нужно состряпать из этого солюшона мейкфайл под GNU Make, с целью сборки на Линуксе. Руками корячить не охота) Если кто знает как тут можно жизнь упростить, подскажите пожалуйста! Заранее спасибо! ![]() |
Автор: SIRIUStar 22.10.2008, 13:04 |
Ну ребят?? Неужели так все плохо? должна же быть какаято прога.. Я бы сам написал мейкфайл, но должно же быть хоть что-то) ![]() ![]() Эх.. Чувствую automake меня ждет) |
Автор: Любитель 22.10.2008, 13:49 |
Ты в этом уверен? |
Автор: Fin 22.10.2008, 14:46 |
SIRIUStar, Если у тебя не консольное приложение, то я не уверен, что оно у тебя кроссплатформенное. Хотя может быть ты используеш Qt. Но тогда в принципе под Linux у тебя не должно вставать вопросов. В Help достаточно хорошо расписан процесс. Но даже в консолке можно слишком много напихать only Windows. |
Автор: SIRIUStar 22.10.2008, 15:10 |
Ребят, я сам его писал) кросплатформенное) ну общими словами, это графический движок.. мой проект, делаю для себя.. а писал подложку для графики на SDL. она кросовая, да OpenGL тож думаю не только на винде сушествует)) дык, есть варианты? ![]() Fin Но даже в консолке можно слишком много напихать only Windows. я все понимаю, вызовов Win Api не использовал) да и зачем? SDL дает все необходимое) PS это библиотека, всякие штуки типа WinMain там нету.. да и примеры я писал консольные.. don t panic) |
Автор: Mayk 22.10.2008, 15:12 |
Как вариант где то там в менюшке Project или около того было "export makefile". Сделать его, допиливать руками. |
Автор: smalcom 22.10.2008, 15:47 | ||
может поможет
|
Автор: SIRIUStar 23.10.2008, 11:45 | ||||||||||
smalcom может поможет Спасибо за ответ, но это пример мэйкфайла) Как писать мэйкфайлы я знаю) только много писать, и тут мне нужны средства автоматизации этого дела.. но все равно спасибо) Вообщем покопал, почитал и если кому будет интересна эта тема немного расскажу что к чему) как подготовить дистрибутив программы в пакете исходного кода? (сразу говорю процесс на самом деле геморойный, много нада делать лапками, но интересный) Шаг 1: Для начала выбираем директорию, которая является корнем нашего проекта. В ней и будем работать) Шаг 2: Перешли в этот каталог, запускаем
Она проверяет вложенные каталоги, ищет исходники, библиотеки, хедеры.. ну и другую ересь. в результате выполнения мы получаем некоторый файл configure.scan что но содержит? ну.. это ряд неких макросов которое использует программа autoconf для создания конфигурации пакета.. Шаг 3: Обычно, этот файлик не совсем верный.. его нужно открыть, доработать руками.. и сохранить как новый файл configure.in Все - мы готовы к созданию конфигурации.. Шаг 4: Запускаем
aclocal нужна для создания некого файла дополнительных макросов m4.. без этого файла autoconf скорее всего не сможет собрать конфигурацию.. Выполнили, получаем configure!! (если все верно в configure.in) думаю что все кто собирал проги в никсах знают что это)) идем далее: Шаг 5: Теперь, нужно ручками написать некий файл Makefile.am на каждый из наших целей в проекте. Он обычно содержит некую цель( бинарник, библиотека, документация и тд) и объекты которые необходимы для достижения этой цели. Распихали эти файлы по дереву проекта.. далее: Шаг 6: выполняем
Если все сделанно верно, то создаются несколько файлов.. типа sh-install , INSTALL .. и тд Но главное что нам нужно так это файл Makefile.in! в нем компануются все .am-ки.. Теперь мы готовы отконфигурировать проект. Шаг 7: далее все уже это знают:
Создается нужный так сильно нам Makefile. Шаг 8: ну как обычно:
Выполняем мейкфайл, собираем наш бешенный проект)) я сбился со счету)) вообщем все) это стандартная схема выработки опен сорс проектов)) Я руководствовался этими источниками, тут написанно подробнее) http://squadette.ru/automake-ru/automake-ru.html#SEC12 http://www.linux.org.ru/books/GNU/autoconf/autoconf-ru_2.html http://www.argc-argv.com/6_2005/article01.pdf http://sourceware.org/automake/automake.pdf Всем спасибо) недеюсь что это кому нить пригодится ![]() ![]() |
Автор: xvr 23.10.2008, 12:03 | ||
Было, до VS 6.0 включительно. У 2003 .net и далее отвалилось ![]() ![]() ![]() Кстати, у нас тут умельцы написали на perl'е скрипт, который читал солюшн он VS .net 2005 (это xml файл) и генерировал по его содержимому makefile. Но оно весьма кривое и настроенное на конкретный проект. |
Автор: Любитель 23.10.2008, 12:21 |
Наверно, речь про файл проекта ;) Солюшен XML-ем не является, да и по сути солюшен - просто набор проектов (+задание зависимостей между ними, билд-ордера и т. д.). |
Автор: SIRIUStar 23.10.2008, 12:22 | ||
Понял, спасибо, вот в принципе такое дело и искал) хотя уже не нужно.. через автотулс большие возможности, да если уж под линуксом делаю, то нужно уж по правилам)) |
Автор: xvr 23.10.2008, 16:34 | ||||
Sorry, именно он
|
Автор: phprus 26.10.2008, 10:33 |
SIRIUStar Я думаю, что проще будет не писать все make-файлы вручную, а попробовать использовать систему для сборки исходных кодов cmake (она заменяет configure, auto*). Он есть и под винду и вроде-бы он даже умеет генерировать файлы проектов для Visual Studio. |
Автор: SIRIUStar 27.10.2008, 12:44 |
phprus Я думаю, что проще будет не писать все make-файлы вручную, а попробовать использовать систему для сборки исходных кодов cmake (она заменяет configure, auto*). Он есть и под винду и вроде-бы он даже умеет генерировать файлы проектов для Visual Studio. Спасибо) я уже все сделал. Для Сmake тоже нужны специальные файлики, чтобы он понял что к чему. Помойму что то типа MakefileLists.. Как оказалось с автотулсами все страшно только с первого взгляда. а так если знать что к чему, очень удобная штука. Так что советую ![]() Всем пасибо, думаю тему можно закрыть. |
Автор: andrew_121 28.10.2008, 15:42 |
SIRIUStar, Обьясняю как это делаю я - при помощи qmake -project. Удачи. |