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

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

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

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

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

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

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

30
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
18.01.2015, 23:28
Студворк — интернет-сервис помощи студентам
Где находится файл libyaml.a ? Напиши полный путь к нему (сюда, в сообщение).
1
 Аватар для SuurKissat
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
18.01.2015, 23:29  [ТС]
D:\Program Files\mingw-w64\i686-4.9.2-win32-dwarf-rt_v3-rev1\mingw32\bin
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
18.01.2015, 23:42
Это проблема. Советую создать более простую папку, например: D:\source\lib и поместить туда библиотеку (libyaml.a).
Тогда при линковке, следует указать флаги: -Ld:/source/lib -lyaml
Если всё сделаешь правильно (например, так как я сказал) - проблема будет решена.
1
 Аватар для SuurKissat
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
19.01.2015, 00:18  [ТС]
castaway, Ура! Скомпилилось и слинковалось!
Еще раз огромное спасибо!
1
 Аватар для SuurKissat
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
20.01.2015, 18:44  [ТС]
Пытался скомпилировать пример с yaml. Пока не вышло и видимо я чего-то сильно не понимаю.
На странице библиотеки http://pyyaml.org/wiki/LibYAML
Примеры https://bitbucket.org/xi/libyaml/src/tip/tests/
Беру пример ридера https://bitbucket.org/xi/libya... at=default

Просто так он не компилится. По "наводкам из ругани компилятора") делаю следующее
1. #include <yaml.h> заменяю на #include"yaml.h"
2. Строчки типа unsigned char *buffer = malloc(3+LONG*2); переделываю на new
3. И приехали!!! Вижу, что первые строки в примере
C++
1
2
YAML_DECLARE(int)
yaml_parser_update_buffer(yaml_parser_t *parser, size_t length);
это декларация функции, она далее активно используется, но нигде не определяется!
4. Что бы это значило?!
0
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
20.01.2015, 19:11
Цитата Сообщение от SuurKissat Посмотреть сообщение
это декларация функции, она далее активно используется, но нигде не определяется!
Она определяется в библиотеке.
Ты, вероятно компилируешь этот код как С++, а надо как С. Отсюда все проблемы с malloc и этим прототипом.
1) Значит, возвращаешь все назад, как было и делаешь одну из двух вещей. Меняешь расширение файла с *.cpp на *.c. Компилируешь.
2) Оставляешь cpp, но:
а) патчишь код следующим образом: результат malloc надо явно скастить к нужному типу, С++ не разрешает неявного преобразования из void*. Т.е. как-то так:
C++
1
    unsigned char *buffer = (unsigned char*)malloc(3+LONG*2);
б) перед декларацией функции прописываешь extern "C". Т.е. как-то так:
C++
1
2
extern "C" YAML_DECLARE(int)
yaml_parser_update_buffer(yaml_parser_t *parser, size_t length);
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
20.01.2015, 19:15
Я не понял в чём у тебя проблема. Что не компилится? Какие ошибки? Как компилишь? Вставь код того что компилишь сюда.
1
 Аватар для SuurKissat
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
20.01.2015, 19:16  [ТС]
DrOffset,
Ты, вероятно компилируешь этот код как С++, а надо как С.
Именно...
перед декларацией функции прописываешь extern "C". Т.е. как-то так:
Помогло сразу же! Скомпилилось и слинковалось мигом!
Спасибо!
0
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
20.01.2015, 19:16
Цитата Сообщение от SuurKissat Посмотреть сообщение
#include <yaml.h> заменяю на #include"yaml.h"
А вот чтобы этого не было, нужно компилятору прописать путь до yaml.h.
Вот например моя строка компиляции
g++ -Wall -O2 -Id:/Develop/libs/yaml/include -c main.cpp -o obj/main.o
и линковки:
g++ -Ld:/Develop/libs/yaml/lib obj/main.o -lyaml -o bin/test_yaml.exe
1
 Аватар для SuurKissat
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
20.01.2015, 19:17  [ТС]
castaway, По указаниям DrOffset уже удалось скомпилить.
0
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
20.01.2015, 19:21
Цитата Сообщение от SuurKissat Посмотреть сообщение
Помогло сразу же! Скомпилилось и слинковалось мигом!
И все-таки верни malloc на место. Телепатия мне подсказывает, что malloc ты заменил на new, а вот free везде оставил как есть. А это нехорошо.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.01.2015, 19:21

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru