src/teamcity/teamcity_boost.cpp:22:47: fatal error: boost/test/unit_test_suite_impl.hpp: No such file or directory

匿名 (未验证) 提交于 2019-12-03 01:46:01

问题:

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] 

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

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 

I am using Ubuntu 16.04 and apache ignite 1.8.0 latest version with Java 8.

Update:

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 

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 

Though the installation is complete, still pdo connection throws exception

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

[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 - empty file - Do i need to add anything to it ? - Tried adding above config but same exception.

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. 

回答1:

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

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 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!