![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
часто приходится смотреть проекты из под линукса ,а там кроме мейкфайлов ничего нет (причем это не CMake который как раз всё это умеет)
есть какой то метод если не преобразовать в проект VS2008, то хотя бы собрать бинарник? в линуксе это вроде делается так.
|
|||
|
||||
kolesnle |
|
|||
![]() Упертый сишник ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 22.3.2013 Репутация: нет Всего: нет |
||||
|
||||
drug007 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 3.11.2011 Репутация: нет Всего: 1 |
Еще лучше использовать msys в добавок к mingw - очень хорошая эмуляция никсов. Практически можно будет под виндой собирать никсовые проекты выполняя те же команды. Настройка может потребоваться, конечно, но из коробки много что работает.
|
|||
|
||||
kamre |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: 1 Всего: 13 |
И как потом подключать плюсовый код, собранный таким образом через MinGW/MSYS, к своему проекту на MSVC? |
|||
|
||||
kolesnle |
|
|||
![]() Упертый сишник ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 22.3.2013 Репутация: нет Всего: нет |
||||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
||||
|
||||
kamre |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: 1 Всего: 13 |
Ну собрали бинарник, а это может быть и dll, как потом использовать это в MSVC? Вот bsa уже подсказал, что никак. Так что какая-то корявая кроссплатформенность получается у autotools, вроде про такие проекты в первую очередь идет речь. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
kamre, я вот не знал, что dll из MingGW нельзя использовать в студии и использовал )
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
если функции экспортируются только на С, управление памятью полностью внутреннее (т.е. нет функций выделяющих память и требующих от пользователя использовать свои средства для освобождения), хидер правильно оформлен, то тогда можно. Но опыт показывает, что далеко не всегда в итоге все корректно работает.
|
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
необязательно. вернее, экспорт возможен только функций, но они (функции) могут создавать и возвращать указатель на абстрактный интерфейс, тоже, кстати, оформленный по определённым правилам - явный тип вызова методов, явное выравнивание, без виртуального деструктора, д.б. ф-ция destroy, которая вызывает delete this, передавать в методы можно только простые типы и т.п. В общем, головняка много, но работает. как-то... пока.. )) -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
kamre |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: 1 Всего: 13 |
С кучей ограничений (фактически до чистого C) можно использовать. Только к чему это? Если в библиотеке экспортируются полноценные C++ сущности (как в Qt/boost), то ни о какой корректной работе при использовании библиотек, собранных через MinGW, в MSVC и речи нет. Даже собирая все через MSVC нужно аккуратно следить за опциями сборки, чтобы не нарушать ODR. |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
т.е. максимум чего можно выжать из таких проектов это бинарник?
или руками всё подключать в чистый проект на VS ? (и иметь полный функционал) это чисто принципиально невозможно написать конвертер из мейкфайл скриптов в файл проекта VS? или просто такого конвертера нету? |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Принципиально невозможно. В makefile'ах может быть указано практически что угодно, файл проекта в MS VS такого не умеет. Более того, если исходные С/С++ коды были расчитанны под gcc (а они скорее всего именно под него и расчитанны), то VC их может и не переварить, у gcc масса расширений, да и даже без расширений VC поддерживает далеко не все конструкции языка С++ |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
ну CMAKE же как то работает. (т.е. умеет создавать VS проекты) make который используется в линуксе он один или его несколько подвидов? к чему он привязан к тулчейну компилятора, т.е. к самому компилятору? или к системе? по идее я же могу прицепить gcc к VS? или опять же просто руками накидать в чистый проект .h и .cpp файлы и скомпилировать(т.е. если файлы кроссплатформенно написаны, то они и скомпилятся, т.е. вопрос то тут не в makefile) что то я даже не понимаю зачем он нужен ибо вроде можно же и через bash какой нибудь дать команды линковщику и компилятору в линуксе? Это сообщение отредактировал(а) mrgloom - 26.4.2013, 12:21 |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
cmake это не make! Несмотря на сходство имен
Один
Ни к чему не привязан. Компилятор gcc вы можете прицепить к IDE VS. Но make к компилятору отношения не имеет Это заметно ![]() Makefile просто указывает, какие есть файлы в проекте, как они зависят друг от друга, и что нужно запустить, что бы собрать тот или иной файл. Обычно этих файлов много, некоторые генерятся в процессе сборки, и зависимости между ними получаются многоуровневые. Простейший Makefile перечисляет все сорцы, и для каждого в нем указан способ его компиляции в объектый файл. Затем там указан исполняемый файл, который зависит от всех объектных. И в качестве команды сборки его стоит вызов линкера. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |