2017-04-27 29 views
1

我有一个问题,你需要在Ubuntu的qt5中安装ibase插件。经过我一系列操作后,我假设你需要挂载文件夹include/firebird,但找不到她。Qt 5.x.编译IBASE plagin Ubuntu 16.10

sudo ln -s /usr/lib/i386-linux-gnu/libfbclient.so.2.5.6 /usr/lib/libfbclient.so 
sudo ln -s /usr/lib/i386-linux-gnu/libfbclient.so.2.5.6 /usr/lib/libgds.so 
sudo ln -s /usr/lib/libfbclient.so /usr/lib/libgds.so.0 
sudo ln /usr/lib/libfbclient.so /usr/lib/lgds.so 
sudo ln /usr/lib/libfbclient.so /usr/lib/libgds.so 

安装:

dpkg --get-selections | grep firebird 
firebird-dev     install 
firebird2.5-classic    deinstall 
firebird2.5-common    install 
firebird2.5-common-doc    install 
firebird2.5-server-common   install 
firebird2.5-super    install 
libreoffice-sdbc-firebird   install 

gbak -z 
gbak:gbak version LI-V2.5.6.27020 Firebird 2.5 

dpkg -L firebird2.5-super 
/. 
/etc 
/etc/init.d 
/etc/init.d/firebird2.5-super 
/usr 
/usr/bin 
/usr/bin/fbstat 
/usr/bin/fbsvcmgr 
/usr/bin/fbtracemgr 
/usr/bin/gbak 
/usr/bin/gdef 
/usr/bin/gfix 
/usr/bin/gpre 
/usr/bin/gsec 
/usr/bin/isql-fb 
/usr/bin/nbackup 
/usr/bin/qli 
/usr/lib 
/usr/lib/firebird 
/usr/lib/firebird/2.5 
/usr/lib/firebird/2.5/UDF 
/usr/lib/firebird/2.5/UDF/fbudf.so 
/usr/lib/firebird/2.5/UDF/ib_udf.so 
/usr/sbin 
/usr/sbin/fb_lock_print 
/usr/sbin/fbserver 
/usr/share 
/usr/share/doc 
/usr/share/lintian 
/usr/share/lintian/overrides 
/usr/share/lintian/overrides/firebird2.5-super 
/usr/share/man 
/usr/share/man/man1 
/usr/share/man/man1/fbserver.1.gz 
/usr/share/doc/firebird2.5-super 

大厦:

sudo cp /usr/lib/x86_64-linux-gnu/firebird/2.5/firebird.msg /opt/firebird/firebird.msg 

sudo nano /etc/profile 
export FIREBIRD="/opt/firebird" 

qmake "INCLUDEPATH+=/usr/bin/" "INCLUDEPATH+=/usr/lib/x86_64-linux-gnu/" "LIBS+=-L/usr/lib/x86_64-linux-gnu/libfbclient.so" "LIBS+=-L/usr/lib/lgds.so" "LIBS+=-L/usr/lib/x86_64-linux-gnu/libdl.so" "LIBS+=-L/usr/lib/libgds.so" "INCLUDEPATH+=/usr/lib/x86_64-linux-gnu/firebird/2.5/" "INCLUDEPATH+=/usr/include" "LIBS+=-L/usr/lib64 -lfbclient" ibase.pro 


make 

log for Qt 5.2.1 - 5.3

log for Qt 5.4-5.5

log for Qt 5.6

log for Qt 5.7

+0

相关:http://stackoverflow.com/questions/6993143/problem-with-qibase-firebird-ubuntu?rq=1 –

+0

看起来你缺少ibase.h –

+0

@MarkRotteveel定位ibase.h 在/ usr/include/ibase.h /usr/include/qt4/Qt/qsql_ibase.h /usr/include/qt4/QtSql/qsql_ibase.h – shaman888

回答

1

有人成功编译在Ubuntu 16.10和Debian杰西。

序言:

  • 在Debian使用su -代替sudo

  • 为的QT源建筑使用 wiki

  • /etc/apt/source.list - 你必须把一些源URI的​​这里

安装包:

sudo apt-get build-dep qt5-default 
sudo apt-get install libxcb-xinerama0-dev 
sudo apt-get install firebird-dev 

源树从Git是:

cd /usr/srC# or any directory you want with w+x 
git clone git://code.qt.io/qt/qt5.git 

cd qt5; 
git checkout 5.7 

perl init-repository 

./configure -developer-build -opensource -nomake examples -nomake tests 

的配置一无所获上面步骤建立IB的插件:

SQL drivers: 
    DB2 .................. no 
    InterBase ............ no 
    MySQL ................ yes (plugin) 
    OCI .................. no 
    ODBC ................. yes (plugin) 
    PostgreSQL ........... yes (plugin) 
    SQLite 2 ............. no 
    SQLite ............... yes (plugin, using bundled copy) 
    TDS .................. yes (plugin) 

make -j4 

# make install # it isn't needed because developers-build 

对于建筑物firebird使用插件this doc

export QTDIR=/usr/src/qt5 
export PATH=$QTDIR/qtbase/bin:$PATH 

cd $QTDIR/qtbase/src/plugins/sqldrivers/ibase 

# to avoid linker error: /usr/bin/ld.gold: error: cannot find -lgds 
sudo ln -s /usr/lib/x86_64-linux-gnu/libfbclient.so /usr/lib/libgds.so 

qmake "INCLUDEPATH+=/usr/include" "LIBS+=-L/usr/lib/x86_64-linux-gnu -lfbclient" ibase.pro 
make 

我经历了以下错误在Ubuntu上只bug-report

/usr/include/c++/6/cstdlib:75:25: fatal error: stdlib.h: No such file or directory #include_next ^

生成Makefile文件应以下列方式进行修改:

INCPATH  = -I. -isystem /usr/include 
--> new 
INCPATH  = -I. -I/usr/include 

后记,重新执行make

rm -f libqsqlibase.so 
g++ -Wl,--no-undefined -fuse-ld=gold -Wl,--enable-new-dtags -Wl,-rpath,/usr/src/qt5/qtbase/lib -shared -o libqsqlibase.so .obj/main.o .obj/qsql_ibase.o .obj/moc_qsql_ibase_p.o -L/usr/lib/x86_64-linux-gnu -lfbclient -lgds -L/usr/src/qt5/qtbase/lib -lQt5Sql -lQt5Core -lpthread 
mv -f libqsqlibase.so ../../../../plugins/sqldrivers/ 

-rwxr-xr-x 1 db src 1241008 May 1 23:55 ../../../../plugins/sqldrivers/libqsqlibase.so 

就是这样。最简单的测试方案显示,广积插件现已上市:

​​

drivers available: ("QIBASE", "QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7", "QTDS", "QTDS7")

我希望这会帮助你。