src/teamcity/teamcity_boost.cpp:22:47:致命错误:boost/test/unit_test_suite_impl.hpp:没有这样的文件或目录 [英] src/teamcity/teamcity_boost.cpp:22:47: fatal error: boost/test/unit_test_suite_impl.hpp: No such file or directory
问题描述
我正在尝试安装ignite odbc驱动程序,我已经按照以下步骤安装了ignite
I am trying to install ignite odbc driver, I have installed ignite following these steps
https://apacheignite.readme.io/docs/getting-started#installation
# Unpack the source package
$ unzip -q apache-ignite-{version}-src.zip
$ cd apache-ignite-{version}-src
# Build In-Memory Data Fabric release (without LGPL dependencies)
$ mvn clean package -DskipTests
# Build In-Memory Data Fabric release (with LGPL dependencies)
$ mvn clean package -DskipTests -Prelease,lgpl
# Build In-Memory Hadoop Accelerator release
# (optionally specify version of hadoop to use)
$ mvn clean package -DskipTests -Dignite.edition=hadoop [-Dhadoop.version=X.X.X]
此后,添加了指向点火目录的IGNITE_HOME路径.还安装了ODBC驱动程序管理器 http://www.unixodbc.org/
After that, added IGNITE_HOME path pointing to ignite directory. Also installed ODBC driver manager http://www.unixodbc.org/
之后,请按照以下步骤操作,
After that, followed these steps,
http://apacheignite.gridgain.org/docs /odbc-driver#section-building-on-linux
但我在"make"处收到此错误
But I get this error at "make"
In file included from src/statement.cpp:29:0:
./include/ignite/odbc/statement.h:614:18: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
std::auto_ptr<query::Query> currentQuery;
^
In file included from /usr/include/c++/5/bits/locale_conv.h:41:0,
from /usr/include/c++/5/locale:43,
from /usr/include/c++/5/iomanip:43,
from ../common/include/ignite/guid.h:27,
from ./include/ignite/odbc/app/application_data_buffer.h:25,
from ./include/ignite/odbc/diagnostic/diagnostic_record_storage.h:27,
from ./include/ignite/odbc/diagnostic/diagnosable.h:21,
from ./include/ignite/odbc/query/query.h:25,
from ./include/ignite/odbc/query/data_query.h:21,
from src/statement.cpp:19:
/usr/include/c++/5/bits/unique_ptr.h:49:28: note: declared here
template<typename> class auto_ptr;
^
CXX src/type_traits.lo
CXX src/utility.lo
CXXLD libignite-odbc.la
ar: `u' modifier ignored since `D' is the default (see `U')
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc'
make[2]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc'
Making all in odbc-test
make[2]: Entering directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Making all in include
make[3]: Entering directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test/include'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test/include'
make[3]: Entering directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
CXX src/teamcity/teamcity_boost.o
src/teamcity/teamcity_boost.cpp:22:47: fatal error: boost/test/unit_test_suite_impl.hpp: No such file or directory
compilation terminated.
Makefile:625: recipe for target 'src/teamcity/teamcity_boost.o' failed
make[3]: *** [src/teamcity/teamcity_boost.o] Error 1
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:661: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:426: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp'
Makefile:358: recipe for target 'all' failed
make: *** [all] Error 2
我正在使用Ubuntu 8.04和apache ignite 1.8.0最新版本以及Java 8.
I am using Ubuntu 16.04 and apache ignite 1.8.0 latest version with Java 8.
更新:
sudo apt-get install libboost-all-dev
libtoolize && aclocal && autoheader && automake --add-missing && autoreconf
./configure --enable-odbc --disable-node --disable-core
make
src/row_test.cpp:192:18: warning: unused variable ‘rowNum’ [-Wunused-variable]
const size_t rowNum = 2;
^
CXX src/utility_test.o
CXX src/queries_test.o
In file included from ../core/include/ignite/cache/cache.h:40:0,
from ../core/include/ignite/ignite.h:26,
from src/queries_test.cpp:35:
../core/include/ignite/impl/cache/cache_impl.h:27:48: fatal error: ignite/impl/interop/interop_target.h: No such file or directory
compilation terminated.
Makefile:625: recipe for target 'src/queries_test.o' failed
make[3]: *** [src/queries_test.o] Error 1
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:661: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:426: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp'
Makefile:358: recipe for target 'all' failed
make: *** [all] Error 2
更新2:在禁用Tet的情况下运行
Update 2: Running with disabling tets worked
libtoolize && aclocal && autoheader && automake --add-missing && autoreconf
./configure --enable-odbc --disable-node --disable-core --disable-tests
make
make install
尽管安装完成,但pdo连接仍会引发异常
Though the installation is complete, still pdo connection throws exception
odbcinst -j
odbcinst -j
unixODBC 2.3.4
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /home/me/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
cat cat/usr/local/etc/odbcinst.ini
cat cat /usr/local/etc/odbcinst.ini
[Apache Ignite]
Description=Apache Ignite
Driver=/usr/local/lib/libignite-odbc.so
Setup=/usr/local/lib/libignite-odbc.so
DriverODBCVer=03.00
FileUsage=0
UsageCount=1
cat/usr/local/etc/odbc.ini-空文件-我需要添加任何内容吗? -尝试添加上述配置,但有相同的例外.
cat /usr/local/etc/odbc.ini - empty file - Do i need to add anything to it ? - Tried adding above config but same exception.
猫/home/me/.odbc.ini
cat /home/me/.odbc.ini
[Apache Ignite]
Description=Apache Ignite
Driver=/usr/local/lib/libignite-odbc.so
DriverODBCVer=03.00
FileUsage=0
UsageCount=1
$ignite = $dbh = new \PDO('odbc:Apache Ignite');
$ignite->prepare('select * from Person');
[PDOException]
SQLSTATE[08001] SQLConnect: 0 [unixODBC]Failed to establish connection with the host.
推荐答案
从源代码分发构建ODBC时,您应该安装Boost库或禁用测试,因为它们使用boost.
As you are building ODBC from sources distribution, you should either install boost libraries or disable tests, as they use boost.
要安装升压运行,请执行以下操作:
To install boost run:
sudo apt-get install libboost-all-dev
要禁用测试,请在modules/platforms/cpp
中执行以下操作:
To disable tests do the following in the modules/platforms/cpp
:
libtoolize && aclocal && autoheader && automake --add-missing && autoreconf
./configure --enable-odbc --disable-node --disable-core --disable-tests
make
这篇关于src/teamcity/teamcity_boost.cpp:22:47:致命错误:boost/test/unit_test_suite_impl.hpp:没有这样的文件或目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!