Я почти полный нуб в мире Linux, и я использую Ubuntu 14.04 LTS с gnome-session-fallback (compiz) под VirtualBox на машине с Windows 8.1. Моя цель - использовать эту библиотеку: https://github.com/akrinke/svg2cairo
Единственное, что мне нужно, это скомпилировать 'svg2cairoxml.c'. Вот очень упрощенная версия этого файла:
#include <stdio.h>
#include <stdlib.h>
#include <librsvg/rsvg.h>
#include <cairo/cairo.h>
int main(int argc, char *argv[]) {
return 0;
}
Я пытался использовать Code :: Blocks 13.12 и Anjuta 3.10.2, но безуспешно. Они оба выдают ошибку «фатальная ошибка: librsvg / rsvg.h: нет такого файла или каталога» при компиляции. Мне удалось найти этот файл в другом месте: 'librsvg-2.0 / librsvg / rsvg.h'. Поэтому я изменил 3-ю строку кода выше. Позже я установил библиотеку gtk dev после ответа stackoverflow. И затем я обнаружил ошибку, которую не могу устранить: «фатальная ошибка: glib-object.h: такого файла или каталога нет» в файле «rsvg.h»:
// this is line 31
#include <glib-object.h>
Я также нашел это файл, реальный путь - «glib-2.0 \ glib-object.h». Но дело в том, что rsvg.h защищен, поэтому я не могу его изменить. И вот где я застрял.
Также я нашел следующие инструкции:
https://stackoverflow.com/questions/7537008/compilation-error- while-using-librsvg Но они слишком сложны для новичков, подобных я.
Я думаю, что моя цель (собрать единственный маленький файл 'svg2cairoxml.c') довольно проста для опытных программистов linux. Так может кто-нибудь, пожалуйста, помогите мне сделать это? Также я предполагаю, что я делаю что-то неправильно, например, использую неправильную версию библиотек или что-то вроде этого.
Когда пакет разработки устанавливает свой заголовок и/или файлы библиотеки в местах, которые не находятся непосредственно на стандартном пути поиска компилятора, необходимо определить местоположения сами явно. Чтобы сделать это на gcc
командная строка, например, Вы использовали бы подходящий -I
(включайте путь), и -L
(путь к библиотеке) директивы. Также необходимо сказать компоновщику который определенные библиотеки связаться от тех путей поиска с помощью -l
директивы такой как -lrsvg-2
для librsvg-2.
, Так как пути и библиотеки могут стать довольно сложными, и варьироваться в зависимости от точной платформы, некоторые пакеты разработки обеспечивают конфигурация пакета (.pc
) файл, который может быть опрошен pkg-config
утилита для генерации соответствующих директив во время изготовления. librsvg-dev
пакет - один такой, как создать Вашу простую программу на командной строке все, что это требуется,
gcc svg2cairoxml.c `pkg-config --cflags --libs librsvg-2.0`
Для достижения того же в IDE, у Вас есть несколько опций: можно или выполнить
pkg-config --cflags librsvg-2.0
и
pkg-config --libs librsvg-2.0
в терминале и скопировать получающийся вывод в соответствующий компилятор и поля настроек компоновщика или, после этого ответа на подобный вопрос на StackOverflow , Как установить GTK + для разработки с Кодом:: Блоки на Ubuntu Linux, добавляют pkg-config
замены команды непосредственно к вкладке Other options следующим образом: