So the reason for this is the idea is you set your cmake macros to
look for specific libraries at various paths, in the event this fails
you're able to force set the variable to your actual library (or
override the default).  The FindOracle.cmake would just need to be
updated to look at more locations.

On 7 July 2011 11:14, Bruce Adams <[email protected]> wrote:
>
>
>
>
> ----- Original Message ----
>> From: Sébastien Taylor <[email protected]>
>> To: General-purpose list for SOCI users. <[email protected]>
>> Sent: Thu, July 7, 2011 4:25:07 PM
>> Subject: Re: [SOCI-users] Test Failures on RHEL5 (was Re: Questions)
>>
>> The libraries variable wants the actual library not the path to  the
>> libraries, if you point it directly to the oracle lib it should  find
>> it.
>>
> Hi,
>    That's a little bizarre but it moves me along, so thanks (by the way my
> postgresql problem was missing the postgresql-devel RPM. Oops.)
>
> Given that the default install location of the oracle RPMs places the include
> and libraries in /usr/include/oracle and /usr/lib/oracle
> I think soci/src/cmake/modules/FindOracle.cmake should work harder and not
> really just on ORACLE_HOME.
> Its not obvious what libraries are wanted and where it is looking for them. To
> my mind it makes more sense to set a library directory
> than a list of libraries if you have to specify manually. Of course you should
> not have to set it manually.
>
> Having persuaded cmake I have Oracle, however, something is still not right. 
> It
> is not linking to the oracle libraries.
> In fact it seems to be using the library path for mysql. I wonder if my manual
> setting of ORACLELIBS has confused it.
>
> Regards,
>
> Bruce.
>
>
> ORACLELIBS=/usr/lib/oracle/10.2.0.4/client/lib/libclntsh.so:/usr/lib/oracle/10.2.0.4/client/lib/libheteroxa10.so:/usr/lib/oracle/10.2.0.4/client/lib/libnnz10.so:/usr/lib/oracle/10.2.0.4/client/lib/libocci.so:/usr/lib/oracle/10.2.0.4/client/lib/libociei.so:/usr/lib/oracle/10.2.0.4/client/lib/libocijdbc10.so:/usr/lib/oracle/10.2.0.4/client/lib/libsqlplusic.so:/usr/lib/oracle/10.2.0.4/client/lib/libsqlplus.so
>
>
> cmake --debug -DPOSTGRESQL_VERSION:=8.1.23 -DSOCI_POSTGRESQL:=ON
> -DSOCI_ORACLE:=ON  -DORACLE_INCLUDE_DIR:=/usr/include/oracle/10.2.0.4/client
> -DORACLE_LIBRARIES:=$ORACLELIBS .
>
>
>
> make[2]: Entering directory `/home/brucea/download/soci/src'
> Linking CXX executable ../../../bin/soci_oracle_test
> cd /home/brucea/download/soci/src/backends/oracle/test && /usr/local/bin/cmake
> -E cmake_link_script CMakeFiles/soci_oracle_test.dir/link.txt --verbose=1
> /usr/lib/ccache/c++    -fPIC -pedantic -ansi -Wall -Wpointer-arith 
> -Wcast-align
> -Wcast-qual -Wfloat-equal -Wredundant-decls -Wno-long-long -std=c++98  -fPIC
> CMakeFiles/soci_oracle_test.dir/test-oracle.cpp.o  -o
> ../../../bin/soci_oracle_test -rdynamic -L/usr/lib/mysql
> ../../../lib/libsoci_core.so.3.1.0 ../../../lib/libsoci_oracle.so.3.1.0
> ../../../lib/libsoci_core.so.3.1.0 -lpthread -ldl
> -Wl,-rpath,/usr/lib/mysql:/home/brucea/download/soci/src/lib
> CMakeFiles/soci_oracle_test.dir/test-oracle.cpp.o: In function `test3()':
> test-oracle.cpp:(.text+0x8a3f): undefined reference to 
> `OCILobDisableBuffering'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIAttrSet'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIEnvCreate'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to
> `OCIDescriptorAlloc'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCILobWrite'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCISessionEnd'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCILobTrim'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIHandleAlloc'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCISessionBegin'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIStmtFetch'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIStmtPrepare'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIErrorGet'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIParamGet'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIBindByName'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to 
> `OCILobWriteAppend'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCITransCommit'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to 
> `OCITransRollback'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIAttrGet'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIBindByPos'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to 
> `OCIDescriptorFree'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIStmtExecute'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIHandleFree'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIServerDetach'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIDefineByPos'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCIServerAttach'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCILobRead'
> ../../../lib/libsoci_oracle.so.3.1.0: undefined reference to `OCILobGetLength'
> collect2: ld returned 1 exit status
> make[2]: *** [bin/soci_oracle_test] Error 1
> make[2]: Leaving directory `/home/brucea/download/soci/src'
> make[1]: *** [backends/oracle/test/CMakeFiles/soci_oracle_test.dir/all] Error 
> 2
> make[1]: Leaving directory `/home/brucea/download/soci/src'
> make: *** [all] Error 2
>
> If I manually add "-L/usr/lib/oracle/10.2.0.4/client/lib -lclntsh" to the two
> failing command lines all is well.
> (The Makefiles produced by cmake are not easy to grok).
>
> Having allegedly built soci successfully. The oracle and postgresql tests 
> fail.
>
> Start processing tests
> Test project /home/brucea/download/soci/src
>  1/ 14 Testing soci_empty_test                  Passed
>  2/ 14 Testing soci_empty_test_static           Passed
>  3/ 14 Testing soci_mysql_test               ***Failed
>  4/ 14 Testing soci_mysql_test_static        ***Failed
>  5/ 14 Testing soci_odbc_test_access         ***Failed
>  6/ 14 Testing soci_odbc_test_access_static  ***Failed
>  7/ 14 Testing soci_odbc_test_postgresql     ***Failed
>  8/ 14 Testing soci_odbc_test_postgresql_stat***Failed
>  9/ 14 Testing soci_oracle_test              ***Failed
>  10/ 14 Testing soci_oracle_test_static       ***Failed
>  11/ 14 Testing soci_postgresql_test          ***Failed
>  12/ 14 Testing soci_postgresql_test_static   ***Failed
>  13/ 14 Testing soci_sqlite3_test                Passed
>  14/ 14 Testing soci_sqlite3_test_static         Passed
>
> 29% tests passed, 10 tests failed out of 14
>
> The following tests FAILED:
>          3 - soci_mysql_test (Failed)
>          4 - soci_mysql_test_static (Failed)
>          5 - soci_odbc_test_access (Failed)
>          6 - soci_odbc_test_access_static (Failed)
>          7 - soci_odbc_test_postgresql (Failed)
>          8 - soci_odbc_test_postgresql_static (Failed)
>          9 - soci_oracle_test (Failed)
>         10 - soci_oracle_test_static (Failed)
>         11 - soci_postgresql_test (Failed)
>         12 - soci_postgresql_test_static (Failed)
> Errors while running CTest
> make[3]: *** [CMakeFiles/check] Error 8
> make[2]: *** [CMakeFiles/check.dir/all] Error 2
> make[1]: *** [CMakeFiles/check.dir/rule] Error 2
> make: *** [check] Error 2
>
> ------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2d-c2
> _______________________________________________
> Soci-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/soci-users
>

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Soci-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/soci-users

Reply via email to