Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
1

Можно ли просто установить yaml в компилятор MinGW?

18.01.2015, 01:51. Просмотров 2011. Ответов 30
Метки нет (Все метки)

Хочу поэкспериментировать с yaml.
Что сделано
1. Смотрел - вроде бы в самом MinGW нет родной библиотеки для поддержки yaml, хотя может - не нашел.
2. Нашел тут скачивание кроссплатформенной библиотеки и описание как ставить https://code.google.com/p/yaml-cpp/ но посмотрел про CMake - это связываться с проектами и их файлами.
3. А хочется чтобы просто был cpp файл мой( и инклуд/ы конечно) , который бы компилился просто командой, максимум с подключением линковки из dll-ек.
4. Можно так сделать или единственный путь - стандартный кроссплатформенный череp CMake?
5. Поиск по форуму запускал - увы...
вот
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2015, 01:51
Ответы с готовыми решениями:

Где можно скачать компилятор MinGW?
А где я могу скачать просто компилятор MinGW g++ ?

компилятор mingw
Установил Dev-Cpp попробовал скомпилировать проект.Вот такая штука на экране.Ясно что дело не в...

Не могу установить компилятор MinGw Под ubuntu в Qt cretor
Вышла такая задача как компиляция из ОС ubuntu в .exe формат, вроде как установил minGw через...

Компилятор MinGW
Подскажите какой лучше компилятор установить для Qt? Мне очень нравится MinGW, Но у меня 64 битная...

30
Эксперт С++
4962 / 3068 / 456
Регистрация: 10.11.2010
Сообщений: 11,159
Записей в блоге: 10
18.01.2015, 10:22 2
yaml-cpp зависит от boost, поэтому предполагается что boost установлен и лежит в какой-то папке.
1. Качаем yaml-cpp
2. Качаем cmake-gui
3. Распаковываем yaml-cpp. Лучше через MSYS: tar xf yaml-cpp*
4. Запускаем cmake-gui:
4a. Жмём "Browse Source..." и выбираем путь к распакованной папке yaml-cpp
4b. Жмём "Browse Build..." и выбираем путь к папке, в которой cmake сохранит конфигурационные файлы. Можно создать новую, можно указать ту же, что и в 4a.
4с. Жмём "Configure" - cmake выдаст ошибку об отсутствии boost.
4d. В появившихся полях "Boost_DIR" и "Boost_INCLUDE_DIR" указываем путь к boost.
4e. Снова жмём "Configure", жмём "Generate".
5. Через командную строку заходим в папку, которую указали в пункте 4b.
6. Выполняем команду mingw32-make. Ждём сборки yaml-cpp.
7. Можно установить собранную библиотеку в отдельную папку, для этого выполняем: mingw32-make DESTDIR=путь install
1
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
18.01.2015, 10:28  [ТС] 3
Спасибо. Прежде чем попробую, предварительный вопрос - если я в свой MinGW специально буст не ставил, то по умолчанию его точно нет и тоже надо ставить?(и тоже разбираться как)
0
Эксперт С++
4962 / 3068 / 456
Регистрация: 10.11.2010
Сообщений: 11,159
Записей в блоге: 10
18.01.2015, 11:03 4
Придётся собирать Boost. Видел инструкции по сборке на форуме и, по-моему, у пользователя Убежденный.
1
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
18.01.2015, 11:47  [ТС] 5
castaway, Да, легко нашел в блоге Убежденного
https://www.cyberforum.ru/blog... g2801.html
но там для вижала...
Ладно, пока спасибо большое, повожусь с инструкциями и позже отпишусь, что вышло а что увы нет...
0
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
18.01.2015, 16:21  [ТС] 6
Гм.
1. Стал таки думать, нет ли пути попроще.
2. Нашел, что есть библиотеки для yaml для чистого си, и вот эта ставится вроде попроще
http://pyyaml.org/wiki/LibYAML
3. Там написано вводить команды
$ ./configure
$ make
# make install

куда их вводить то?
4. Сам предположил, что в консоль, открываемую командным файлом в моей системе по пути
F:\MinGW\msys\1.0\msys.bat
5. Пришлось прописать переменную окружения $PATH
6. И я в своих экспериментах застопорился на появлении странного сообщения.
В инете оно упоминается, но понять не удалось...
0
Миниатюры
Можно ли просто установить yaml в компилятор MinGW?  
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
18.01.2015, 16:46  [ТС] 7
Добавка. В консоли действовал так
cd f:
cd yaml-0.1.5
(благополучно попадаю в директорию, куда распаковал архив с библиотекой)
./configure
(сначала не находило компилятор, когда это исправил прописыванием PATH - появилось вышеуказанное сообщение об ошибке)
0
Эксперт С++
4962 / 3068 / 456
Регистрация: 10.11.2010
Сообщений: 11,159
Записей в блоге: 10
18.01.2015, 17:04 8
Попробуй обновить MinGW.
Установленный у меня MinGW 4.9.2 выдаёт внутреннюю ошибку компилятора.
MinGW 4.8.3 вроде бы и начинает нормально собирать, но падает на unresolved external при сборке тестов, а это уже проблема самой yaml.
1
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
18.01.2015, 18:53  [ТС] 9
castaway, Прости меня ламера....
Как грамотно поставить последний MinGW? Попробовал просто снести свой и заново скачать и запустить mingw-get-setup.exe а он стал качать туже версию 4.8.1

Добавлено через 42 минуты
Нашел вроде неофициальную сборку хорошую (кстати в ней и буст заодно!), испытаю и отпишусь вскоре
http://nuwen.net/mingw.html

Добавлено через 3 минуты
Облом... Там 64 бита, а у меня система - XP тридцатидвухбитная....
0
Эксперт С++
4962 / 3068 / 456
Регистрация: 10.11.2010
Сообщений: 11,159
Записей в блоге: 10
18.01.2015, 19:49 10
SuurKissat, официальных сборок нет, советую эту 32-х битную: http://sourceforge.net/project... z/download
1
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
18.01.2015, 20:18  [ТС] 11
Поставил. А где у нее (сборки) нужная консоль? Файл msys.bat не нашел в ней...
0
Эксперт С++
4962 / 3068 / 456
Регистрация: 10.11.2010
Сообщений: 11,159
Записей в блоге: 10
18.01.2015, 20:40 12
Цитата Сообщение от SuurKissat Посмотреть сообщение
А где у нее (сборки) нужная консоль? Файл msys.bat не нашел в ней...
Там его нет. MSYS идёт отдельно, его можно было не удалять. Где его скачать сейчас не скажу, попробуй поискать его сам..
1
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
18.01.2015, 21:03  [ТС] 13
1. Восстановил из корзины весь старый MinGW
2. В PATH написал путь к bin-у нового (сборка рекомендованная - поставилась в програм файлес кстати)
3. После этого в консоли команда ./configure вроде хорошо потрудилась.
4. а вот make вывел
MAkefile:171: *** missing separator. Stop

Я заглянул в мейк-файл и увидел там строки
LD = d:/Program
Files/mingw-w64/i686-4.9.2-win32-dwarf-rt_v3-rev1/mingw32/i686-w64-mingw32/bin/ld.exe

объединил их в одну, мейк-файл запустился, но теперь среди нескольких сообщений о его работе - аналогичная ругань на строки в районе
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \

Что тут ему не нравится и что дальше делать?
0
13475 / 7138 / 1712
Регистрация: 30.01.2014
Сообщений: 11,943
18.01.2015, 21:29 14
SuurKissat, вот только что собрал с mingw 4.8.1 из mingw builds.
См. архив.

PS. стоит себе настроить окружение для сборки в винде, т.к. это будет требоваться довольно часто. Потрать пару дней (или недель), чтобы настроить себе msys+пачка компиляторов, утилит и библиотек.
1
Вложения
Тип файла: zip libyaml-mingw32-4.8.1.zip (460.0 Кб, 10 просмотров)
13475 / 7138 / 1712
Регистрация: 30.01.2014
Сообщений: 11,943
18.01.2015, 21:34 15
Цитата Сообщение от SuurKissat Посмотреть сообщение
В PATH написал путь к bin-у нового
Вообще, при использовании MSYS не надо ничего в PATH прописывать.
В каталоге с msys есть директория /etc, а в ней файл fstab. Вот туда надо прописать путь к mingw на точку монтирования /mingw. Например так:
#Win32_Path Mount_Point
d:/Develop/MinGW /mingw
После этого запустить msys и набрать gcc -v. Если нормально выведет версию, то все сделано правильно, можно пользоваться. Из PATH винды пути к bin надо убрать.
1
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
18.01.2015, 22:03  [ТС] 16
Спасибо огромное!!! Сегодня наверно все уже, а завтра с либой хорошо поэкспериментирую.
Пока только проверил, что сам по себе инклуд вставленный в мой проект - компилится и линкуется. Хоть пока и "впустую", но ощибок нет и это хорошо!

В сторону - я же архив из сообщения 14 скачал, почему у него написано ноль просмотров?

Добавлено через 23 минуты
Последний наверно вопрос.
Как слинковать тестовую прогу с использованием библиотеки выложенной?
1. Насколько понимаю, реализации основные в файле libyaml.a
2. Была бы dll я бы ее прилинковал параметром -lимя файла
3. По аналогии не получается, но видимо и надо по другому.
0
Эксперт С++
4962 / 3068 / 456
Регистрация: 10.11.2010
Сообщений: 11,159
Записей в блоге: 10
18.01.2015, 22:18 17
Цитата Сообщение от SuurKissat Посмотреть сообщение
2. Была бы dll я бы ее прилинковал параметром -lимя файла
В MinGW, динамические библиотеки линкуются так: -lимя.dll
Статические: -lимя
Проблем быть не должно.
1
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
18.01.2015, 22:57  [ТС] 18
Увы проблема таки есть
В файл проекта включил пока строки
C++
1
2
3
    yaml_parser_t parser;
    yaml_event_t event;
    yaml_parser_initialize(&parser);
Компилирую довольно затейливым bat-файлом
del fl2.exe
D:
cd "Program Files"
cd mingw-w64
cd i686-4.9.2-win32-dwarf-rt_v3-rev1
cd mingw32
cd bin
del a.exe
g++ F:\FL2\fl2.cpp -lgdiplus -lGdi32 -llibyaml -static
pause
copy a.exe F:\FL2\fl2.exe

Его выписываю весь на всякий случай, хотя думаю что все, кроме строчки выделенной жирным - неважно сейчас
3. Я "запихнул" libyaml.a для простоты прямо в bin, но оно его в упор не видит... Пишет что не нашло. Ну и потом ошибка линковки понятная...
4. Перепробовал вариации параметра
-llibyaml -lyaml -llibyaml.a -lyaml.a но ему все равно...
0
Эксперт С++
4962 / 3068 / 456
Регистрация: 10.11.2010
Сообщений: 11,159
Записей в блоге: 10
18.01.2015, 23:11 19
Цитата Сообщение от SuurKissat Посмотреть сообщение
g++ F:\FL2\fl2.cpp -lgdiplus -lGdi32 -llibyaml -static
Имя библиотеки нужно писать без префикса lib ! Т.е.: -lyaml
1
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
18.01.2015, 23:16  [ТС] 20
Так попробовал уже такой вариант, писал в самом конце последнего сообщения о перебранных...
Увы - сейчас еще раз попробовал именно так -lyaml увы все равно не видит...

Добавлено через 1 минуту
(Параноидально)MinGW не мог поставиться так криво, чтобы свой bin не видеть? Или ерунда, компилятор априори видит либы в одном каталоге с ним?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2015, 23:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Компилятор MinGW в NetBeans не видит класс потока (thread)
Версия NetBeans - 8.0.2 компилятор - MinGW Суть проблемы в следующем - использую NetBeans для...

Собрать intel vmf sdk для windows 7, компилятор minGW
Здравствуйте! Я понимаю, что инструментарий довольно новый, но тем не менее очень нужно. Я...

надо просто написать компилятор
Здравствуйте. Пишу программу (в C++Builder), в которой надо реализовать возможность создания...

Установить MinGW для Qt
Пользовался компилятором MSVC2010, но и то вылетала ошибка мол 32-х битный не пашет, я запускаю...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.