понедельник, 21 марта 2011 г.

Установка книг в devhelp

Существует такой замечательный пакет для разработчика как devhelp. Одна беда - для начинающих он практически бесполезен, нет мануала по обычным функциям C и приходится постоянно искать информацию в интерентах. Для себя я решил проблему так:

1. Идем на сайт: http://www.code.google.com/p/htmlhelp/
и скачиваем файл: http://htmlhelp.googlecode.com/files/libc-2.7.tgz
например в папку ~/build
2. Создаем скрипт для установки книжки: sudo nano /usr/bin/devhelp-install

#!/bin/sh

set -e

# NOTE: DevHelp authors change the book location every minor update, so YMMV...
XDG_DATA_HOME=${XDG_DATA_HOME:=$HOME/.local/share}
DEVHELP="$XDG_DATA_HOME/devhelp"

for FILE
do
 BASENAME=`basename "$FILE"`
 BOOK=${BASENAME%.*}
 
 mkdir -p "$DEVHELP/books"
 rm -rf "$DEVHELP/books/$BOOK"
 
 TMPDIR=`mktemp -dt devhelp.XXXXXX`

 tar -xzf "$FILE" -C "$TMPDIR"

 mv "$TMPDIR/book" "$DEVHELP/books/$BOOK"
 mv "$TMPDIR/book.devhelp" "$DEVHELP/books/$BOOK/$BOOK.devhelp"

 rm -rf "$TMPDIR"
done

3. Сохраняем файл
4. Делаем его запускаемым sudo chmod +x /usr/bin/devhelp-install
5. Переходим  в папку cd ~/build/
6. Выполняем команду: sudo devhelp-install libc-2.7.tgz
7. Выполняем devhelp проверяем что книжка видна из справочника, там она обозначается "GNU C Library". Еще можно в строке поиска ввести: printf и посмотреть результат, мне от него стало гораздо приятнее =)


Для себя я разу поотключал ненужные мне пока книги: 
Меню Правка -> Preferencies -> вкладка "Книжная полка". 
и убрал ненужные галочки с книг


Кстати там же на сайте есть множество других книг, очень полезных
и еще скрипт для удаления книги из библиотеки, если она не подошла.
Он вот здесь: http://code.google.com/p/htmlhelp/wiki/DevHelpInstall, внизу страницы, в разделе Download


P.S. Для пользователей Archlinux создал PKGBBUILD в AUR: 
https://aur.archlinux.org/packages.php?ID=25909
пользуйтесь на здоровье и не забывайте голосовать за него =)

воскресенье, 20 марта 2011 г.

C, Anjuta и библиотеки MySQL

Задался идеей "прикрутить" MySQL к C, чтобы программа написанная на C могла работать с базой MySQL, только вот незадача - использую в работе IDE Anjuta. А она по умолчанию никак не хочет собирать проект. Проблема легко решаема:
нужно иметь установленный пакет mysqlclient. Для этого ставим mysql:
sudo pacman -S mysql
Далее запускаем Anjuta, идем: Проект -> Свойства 
кликаем вкладку "Переменные" как на рисунке ниже:



Здесь надо добавить 2 новые переменные:
LIBS = `mysql_config --libs` 
CFLAGS = `mysql_config --cflags`
Должно получиться как у меня на рисунке (разве что GETTEXT_PACKAGE у вас будет свой) 
Вот и  все, после пересборки проекта Anjuta будет спокойно работать с проектом MySQL


Обратите внимание. 
Значения должны быть с обратными кавычками! Без них ничего работать не будет.
Сначала, по невнимательности, сам попался на этом


И не забудьте вставить в начале файла с кодом:
#include <mysql/mysql.h>


Удачи!