На счет ibpp
Я собирал ibpp как под Linux так и для FreeBSD. Что бы собиралось под
FreeBSD нужно модифицировать  ibpp.h. Об этом позднее. Для более
удобного использования создадим динамическую и статическую библиотеку.
Для начала необходимо убедиться, что у нас установлены хедеры и
библиотеки Firebird.

Копируем содержимое папки core в рабочий каталог, в котором будем
осуществлять сборку. Создаем Makefile со следующим содержимым.

==================== Начало Makefile =============================
#-----------------------------------------------------------------
# This Makefile for build static and dynamic library for IBPP
#-----------------------------------------------------------------
DESTDIR=
LIB_PATH=/usr/lib
INC_PATH=/usr/include
INSTALL=install

OBJS=_ibpp.o _dpb.o _ibs.o _rb.o _spb.o _tpb.o array.o blob.o \
database.o dbkey.o events.o exception.o service.o row.o statement.o \
transaction.o date.o time.o user.o

STAT_LIBRARY=libibpp.a
DYN_LIBRARY=libibpp.so

ifeq ($(shell uname),FreeBSD)
        CXXFLAGS =-DIBPP_FREEBSD
        CXXFLAGS+=-W -Wall -fPIC
        CXXFLAGS+= -O3
endif

ifeq ($(shell uname),Linux)
        CXXFLAGS =-DIBPP_FREEBSD
        CXXFLAGS+=-W -Wall -fPIC
        CXXFLAGS+= -O3
endif

IBPP_INC=ibpp.h

.PHONY: all install clean
all: $(STAT_LIBRARY) $(DYN_LIBRARY)

$(STAT_LIBRARY): $(OBJS)
        ar ru $@ $^
        ranlib $@

$(DYN_LIBRARY): $(OBJS)
        $(CXX) -shared -fPIC $(LDFLAGS) -o $@ $^

install:
        mkdir -p $(DESTDIR)$(LIB_PATH)
        mkdir -p $(DESTDIR)$(INC_PATH)
        $(INSTALL) -o 0 -g 0 -m 755 $(DYN_LIBRARY) $(DESTDIR)$
(LIB_PATH)/$(DYN_LIBRARY)
        $(INSTALL) -o 0 -g 0 -m 644 $(STAT_LIBRARY) $(DESTDIR)$
(LIB_PATH)/$(STAT_LIBRARY)
        $(INSTALL) -o 0 -g 0 -m 644 $(IBPP_INC) $(DESTDIR)$(INC_PATH)/$
(IBPP_INC)

clean:
        $(RM) *.o
        $(RM) libibpp.a libibpp.so

========================= Конец Makefile
===============================================
Да еще один момент. При этом подразумевается, что библиотеки Firebird
и заголовки файлов находятся в стандартных каталогах. Если нет, самое
простое - создать символические ссылки.
Набираем make. Если сборка прошла успешно, make install. Синтаксис
Makefile написан именно для GNU make (gmake во FreeBSD).
Для сборки в FreeBSD необходимо подредактировать ibpp.h
Вот patch:
=================== начало ibpp.patch
===========================================
43c43
< //    Select the platform:    IBPP_WINDOWS | IBPP_LINUX |
IBPP_DARWIN^M
---
> //    Select the platform:    IBPP_WINDOWS | IBPP_LINUX | IBPP_DARWIN | 
> IBPP_FREEBSD^M
50,51c50,51
< #if !defined(IBPP_WINDOWS) && !defined(IBPP_LINUX) && !
defined(IBPP_DARWIN)^M
< #error Please define IBPP_WINDOWS/IBPP_LINUX/IBPP_DARWIN before
compiling !^M
---
> #if !defined(IBPP_WINDOWS) && !defined(IBPP_LINUX) && !defined(IBPP_DARWIN) 
> && !defined(IBPP_FREEBSD)^M
> #error Please define IBPP_WINDOWS/IBPP_LINUX/IBPP_DARWIN/IBPP_FREEBSD before 
> compiling !^M
59c59
< #if defined(IBPP_LINUX) || defined(IBPP_DARWIN)^M
---
> #if defined(IBPP_LINUX) || defined(IBPP_DARWIN) || defined(IBPP_FREEBSD)^M
======================= конец ibpp.patch
==========================================
накладываем патч.
patch -p0 < ibpp.patch
Указываем ibpp.h для патча.
File to patch: ibpp.h

Все. Теперь можно делать сборку и под FreeBSD.
Далее набираем gmake. Если сборка прошла без ошибок gmake install.

Пробуем создать тестовое соединение.

================ начало test1.cpp =========================
test01.cpp         [----]  0 L:[  1+ 0   1/ 20] *(0   / 313b)= #  35
0x23
#include <iostream>
#include <ibpp.h>
using namespace std;

int main()
{
    try
    {
        IBPP::Database db = IBPP::DatabaseFactory("localhost",
"employee", "SYSDBA", "masterkey");
        db->Connect();

        // other code

        db->Disconnect();
    }
    catch (IBPP::Exception& e)
    {
        cout << e.ErrorMessage();
    }
    return 0;
}

================ конец test1.cpp ===========================
Собираем test.cpp
g++ -o test1 test1.cpp -L/usr/local/lib -lfbclient -libpp -DIBPP_LINUX
(для Linux)
g++ -o test1 test1.cpp -L/usr/local/lib -lfbclient -libpp -
DIBPP_FREEBSD (для FreeBSD).

Пробуем запустить
./test1

Ответить