Thread: [Orclib-devel] trouble building the C++ example code
Open source C and C++ library for accessing Oracle Databases
Brought to you by:
vince_del_paris
From: Christoph D. <du...@me...> - 2015-02-17 10:46:42
|
Trying to build the .cpp example program from the website #include "ocilib.hpp" using namespace ocilib; int main(void) { try { Environment::Initialize(); Connection con("db", "usr", "pwd"); Statement st(con); st.Execute("select * from products"); Resultset rs = st.GetResultset(); while (rs.Next()) { std::cout << "code:" << rs.Get<int>(1) << " name: " << rs.Get<ostring>(2) << std::endl; } std::cout << "=> Total fetched rows : " << rs.GetCount() << std::endl; } catch(Exception &ex) { std::cout << ex.GetMessage() << std::endl; } Environment::Cleanup(); return EXIT_SUCCESS; } I get compile errors using clang++ (version 3.1), or g++ (4.3.6): (I am running OpenSuSE linux 11.4). Use clang++/g++ call: clang++ -c -Wall -I $OCILIB/include -o .obj/ocilibtest.o ocilibtest.cpp Output of g++ g++ -c -Wall -I /usr/local/melos/3rdparty/ocilib/include -o .obj/ocilibtest.o ocilibtest.cpp In file included from /usr/local/melos/3rdparty/ocilib/include/ocilib.hpp:8183, from ocilibtest.cpp:36: /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp: In member function 'void ocilib::HandleHolder<THandleType>::Acquire(THandleType, int (*)(void*), ocilib::Handle*)': /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: expected type-specifier /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: expected `>' /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: expected `(' /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: expected primary-expression before '>' token /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: expected `)' before ';' token /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:390: error: expected type-specifier /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:390: error: expected `; ... Output of clang++: clang++ -c -Wall -I /usr/local/melos/3rdparty/ocilib/include -o .obj/ocilibtest.o ocilibtest.cpp In file included from ocilibtest.cpp:36: /usr/local/melos/3rdparty/ocilib/include/ocilib.hpp:4612:39: error: no class named 'Iterator' in 'Collection<TDataType>' friend class Collection<TDataType>::Iterator; ~~~~~~~~~~~~~~~~~~~~~~~^ In file included from ocilibtest.cpp:36: In file included from /usr/local/melos/3rdparty/ocilib/include/ocilib.hpp:8183: /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:838:23: error: no matching function for call to 'OCI_ErrorGetString' return MakeString(OCI_ErrorGetString(*this)); ^~~~~~~~~~~~~~~~~~ /usr/local/melos/3rdparty/ocilib/include/ocilib.h:1969:34: note: candidate function not viable: no known conversion from 'const ocilib::Exception' to 'OCI_Error *' for 1st argument; OCI_EXPORT const otext * OCI_API OCI_ErrorGetString ^ .... Is building the C++ code under linux known to work? Best regards -- Christoph Duelli --------------------------------------------------------------------------------- MELOS-Medizinische Labor-Organisations-Systeme GmbH Franz-Beer-Straße 6 86459 Gessertshausen Tel.: +49 8238/9611-0 Fax: +49 8238/9611-99 mailto: in...@me... URL: www.melosgmbh.de Amtsgericht Augsburg, HRB 13226 USt-IdNr. DE 130 958 139 Geschäftsführer: Herbert Mayer, Andreas Manntz, Helmut Welsch -------------------------------------------- This e-mail (including any attachments) is confidential and may be privileged. If you have received it by mistake, please notify the sender by e-mail and delete it from your system. Any unauthorised use or dissemination of this e-mail or its contents in whole or in part is strictly prohibited. Please note that e-mails are susceptible to change. MELOS GmbH shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt. MELOS GmbH does not guarantee that the integrity of this communication has been maintained nor that this communication is free of viruses, interceptions or interference. |
From: vincent r. <vin...@gm...> - 2015-02-17 12:30:02
|
Hi, All demo files provided within the folder of ocilib distribution compiles smoothly with microsoft C++ compiler and GCC (on linux and mingw on windows). I will check your issue asap and check my gcc versions. Regards, Vincent Le 17 févr. 2015 11:46, "Christoph Duelli" <du...@me...> a écrit : > Trying to build the .cpp example program from the website > > #include "ocilib.hpp" > using namespace ocilib; > > int main(void) > { > try > { > Environment::Initialize(); > > Connection con("db", "usr", "pwd"); > Statement st(con); > st.Execute("select * from products"); > Resultset rs = st.GetResultset(); > while (rs.Next()) > { > std::cout << "code:" << rs.Get<int>(1) << " name: " << > rs.Get<ostring>(2) << std::endl; > } > std::cout << "=> Total fetched rows : " << rs.GetCount() << > std::endl; > } > catch(Exception &ex) > { > std::cout << ex.GetMessage() << std::endl; > } > > Environment::Cleanup(); > return EXIT_SUCCESS; > } > > I get compile errors using clang++ (version 3.1), or g++ (4.3.6): > (I am running OpenSuSE linux 11.4). > > Use clang++/g++ call: > clang++ -c -Wall -I $OCILIB/include -o .obj/ocilibtest.o ocilibtest.cpp > > Output of g++ > g++ -c -Wall -I /usr/local/melos/3rdparty/ocilib/include -o > .obj/ocilibtest.o ocilibtest.cpp > In file included from > /usr/local/melos/3rdparty/ocilib/include/ocilib.hpp:8183, > from ocilibtest.cpp:36: > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp: In member > function 'void ocilib::HandleHolder<THandleType>::Acquire(THandleType, > int (*)(void*), ocilib::Handle*)': > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: > expected type-specifier > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: > expected `>' > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: > expected `(' > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: > expected primary-expression before '>' token > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: > expected `)' before ';' token > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:390: error: > expected type-specifier > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:390: error: > expected `; > ... > > Output of clang++: > clang++ -c -Wall -I /usr/local/melos/3rdparty/ocilib/include -o > .obj/ocilibtest.o ocilibtest.cpp > In file included from ocilibtest.cpp:36: > /usr/local/melos/3rdparty/ocilib/include/ocilib.hpp:4612:39: error: no > class named 'Iterator' in 'Collection<TDataType>' > friend class Collection<TDataType>::Iterator; > ~~~~~~~~~~~~~~~~~~~~~~~^ > In file included from ocilibtest.cpp:36: > In file included from > /usr/local/melos/3rdparty/ocilib/include/ocilib.hpp:8183: > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:838:23: error: > no matching function for call to 'OCI_ErrorGetString' > return MakeString(OCI_ErrorGetString(*this)); > ^~~~~~~~~~~~~~~~~~ > /usr/local/melos/3rdparty/ocilib/include/ocilib.h:1969:34: note: > candidate function not viable: no known conversion from 'const > ocilib::Exception' to 'OCI_Error *' for 1st argument; > OCI_EXPORT const otext * OCI_API OCI_ErrorGetString > ^ > .... > > > Is building the C++ code under linux known to work? > > > Best regards > > -- > Christoph Duelli > > > > > > --------------------------------------------------------------------------------- > MELOS-Medizinische Labor-Organisations-Systeme GmbH > Franz-Beer-Straße 6 > 86459 Gessertshausen > Tel.: +49 8238/9611-0 > Fax: +49 8238/9611-99 > mailto: in...@me... > URL: www.melosgmbh.de > > Amtsgericht Augsburg, HRB 13226 > USt-IdNr. DE 130 958 139 > Geschäftsführer: > Herbert Mayer, Andreas Manntz, Helmut Welsch > -------------------------------------------- > This e-mail (including any attachments) is confidential and may be > privileged. If you have received it by mistake, please notify the sender by > e-mail and delete it from your system. > Any unauthorised use or dissemination of this e-mail or its contents in > whole or in part is strictly prohibited. Please note that e-mails are > susceptible to change. > MELOS GmbH shall not be liable for the improper or incomplete transmission > of the information contained in this communication nor for any delay in its > receipt. > MELOS GmbH does not guarantee that the integrity of this communication has > been maintained nor that this communication is free of viruses, > interceptions or interference. > > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > > http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk > _______________________________________________ > Orclib-devel mailing list > Orc...@li... > https://lists.sourceforge.net/lists/listinfo/orclib-devel > |
From: Christoph D. <du...@me...> - 2015-02-17 14:44:35
|
I gave it a try on a new SLES12 installation. The code now does compile with g++ (4.8.3) without warning. clang 3.5.1 is not quite happy, however: 1) before class Element (ocilib.hpp, line 4610) a forward declaration of class Iterator is needed; otherwise the friend declaration a few lines below fails class Iterator; (add around line 4602) 2) /tmp/ocilib/include/ocilib_impl.hpp:2649:46: error: no member named 'GetContent' in 'Lob<TLobObjectType, TLobOracleType>' return Lob<TLobObjectType, TLobOracleType>::GetContent(); There is no GetContent in Lob, however... there is a conversion operator, though: operator TLobObjectType() const; I am not sure, whether the GetContent is missing, the conversion operator should be renamed to GetContent... 3) warnings... please check, if this is a problem soft@sles12test:/labor/source/pakete/qt5> clang++ -c -Wall -I /tmp/ocilib/include -o /tmp/ocilibtest.o /tmp/ocilibtest.cpp In file included from /tmp/ocilibtest.cpp:36: In file included from /tmp/ocilib/include/ocilib.hpp:8185: /tmp/ocilib/include/ocilib_impl.hpp:2277:38: warning: variable 'minutes' is uninitialized when used here [-Wuninitialized] SetDateTime(year, month, day, hour, minutes, seconds, milliseconds); ^~~~~~~ /tmp/ocilib/include/ocilib_impl.hpp:2274:47: note: initialize the variable 'minutes' to silence this warning int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, milliseconds; ^ = 0 /tmp/ocilib/include/ocilib_impl.hpp:2277:47: warning: variable 'seconds' is uninitialized when used here [-Wuninitialized] SetDateTime(year, month, day, hour, minutes, seconds, milliseconds); ^~~~~~~ /tmp/ocilib/include/ocilib_impl.hpp:2274:56: note: initialize the variable 'seconds' to silence this warning int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, milliseconds; ^ = 0 /tmp/ocilib/include/ocilib_impl.hpp:2277:56: warning: variable 'milliseconds' is uninitialized when used here [-Wuninitialized] SetDateTime(year, month, day, hour, minutes, seconds, milliseconds); ^~~~~~~~~~~~ /tmp/ocilib/include/ocilib_impl.hpp:2274:70: note: initialize the variable 'milliseconds' to silence this warning int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, milliseconds; ^ = 0 It would be great if you could make the small fixes as to support clang as well. (And maybe add a note that the C++ interface requires a somewhat newish compiler.) Best regards -- Christoph Duelli Dipl.-Inf. Software-Entwickler Tel.: +49 8238/9611-38 Fax: +49 8238/9611-99 mailto: chr...@me... --------------------------------------------------------------------------------- MELOS-Medizinische Labor-Organisations-Systeme GmbH Franz-Beer-Straße 6 86459 Gessertshausen Tel.: +49 8238/9611-0 Fax: +49 8238/9611-99 mailto: in...@me... URL: www.melosgmbh.de Amtsgericht Augsburg, HRB 13226 USt-IdNr. DE 130 958 139 Geschäftsführer: Herbert Mayer, Andreas Manntz, Helmut Welsch -------------------------------------------- This e-mail (including any attachments) is confidential and may be privileged. If you have received it by mistake, please notify the sender by e-mail and delete it from your system. Any unauthorised use or dissemination of this e-mail or its contents in whole or in part is strictly prohibited. Please note that e-mails are susceptible to change. MELOS GmbH shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt. MELOS GmbH does not guarantee that the integrity of this communication has been maintained nor that this communication is free of viruses, interceptions or interference. |
From: vincent r. <vin...@gm...> - 2015-02-17 16:14:30
|
Sure ! Il will add support for Clang asap and also modify the code to work with older versions of GCC. This may take few days. I will probably have all done by next week ! I will let you known as soon as compatibility with CLang will be done (2 or 3 days) Regards, Vincent On Tue, Feb 17, 2015 at 3:44 PM, Christoph Duelli <du...@me...> wrote: > I gave it a try on a new SLES12 installation. > > The code now does compile with g++ (4.8.3) without warning. > > clang 3.5.1 is not quite happy, however: > 1) before class Element (ocilib.hpp, line 4610) a forward declaration of > class Iterator is needed; > otherwise the friend declaration a few lines below fails > class Iterator; (add around line 4602) > > > > 2) /tmp/ocilib/include/ocilib_impl.hpp:2649:46: error: no member named > 'GetContent' in 'Lob<TLobObjectType, TLobOracleType>' > return Lob<TLobObjectType, TLobOracleType>::GetContent(); > > There is no GetContent in Lob, however... there is a conversion > operator, though: > operator TLobObjectType() const; > I am not sure, whether the GetContent is missing, the conversion > operator should be renamed to GetContent... > > > > 3) warnings... please check, if this is a problem > soft@sles12test:/labor/source/pakete/qt5> clang++ -c -Wall -I > /tmp/ocilib/include -o /tmp/ocilibtest.o /tmp/ocilibtest.cpp > In file included from /tmp/ocilibtest.cpp:36: > In file included from /tmp/ocilib/include/ocilib.hpp:8185: > /tmp/ocilib/include/ocilib_impl.hpp:2277:38: warning: variable 'minutes' > is uninitialized when used here [-Wuninitialized] > SetDateTime(year, month, day, hour, minutes, seconds, > milliseconds); > ^~~~~~~ > /tmp/ocilib/include/ocilib_impl.hpp:2274:47: note: initialize the > variable 'minutes' to silence this warning > int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, > milliseconds; > ^ > = 0 > /tmp/ocilib/include/ocilib_impl.hpp:2277:47: warning: variable 'seconds' > is uninitialized when used here [-Wuninitialized] > SetDateTime(year, month, day, hour, minutes, seconds, > milliseconds); > ^~~~~~~ > /tmp/ocilib/include/ocilib_impl.hpp:2274:56: note: initialize the > variable 'seconds' to silence this warning > int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, > milliseconds; > ^ > = 0 > /tmp/ocilib/include/ocilib_impl.hpp:2277:56: warning: variable > 'milliseconds' is uninitialized when used here [-Wuninitialized] > SetDateTime(year, month, day, hour, minutes, seconds, > milliseconds); > ^~~~~~~~~~~~ > /tmp/ocilib/include/ocilib_impl.hpp:2274:70: note: initialize the > variable 'milliseconds' to silence this warning > int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, > milliseconds; > ^ > = 0 > > It would be great if you could make the small fixes as to support clang > as well. > (And maybe add a note that the C++ interface requires a somewhat newish > compiler.) > > > Best regards > > -- > Christoph Duelli > Dipl.-Inf. > Software-Entwickler > Tel.: +49 8238/9611-38 > Fax: +49 8238/9611-99 > mailto: chr...@me... > > > > > > --------------------------------------------------------------------------------- > MELOS-Medizinische Labor-Organisations-Systeme GmbH > Franz-Beer-Straße 6 > 86459 Gessertshausen > Tel.: +49 8238/9611-0 > Fax: +49 8238/9611-99 > mailto: in...@me... > URL: www.melosgmbh.de > > Amtsgericht Augsburg, HRB 13226 > USt-IdNr. DE 130 958 139 > Geschäftsführer: > Herbert Mayer, Andreas Manntz, Helmut Welsch > -------------------------------------------- > This e-mail (including any attachments) is confidential and may be > privileged. If you have received it by mistake, please notify the sender by > e-mail and delete it from your system. > Any unauthorised use or dissemination of this e-mail or its contents in > whole or in part is strictly prohibited. Please note that e-mails are > susceptible to change. > MELOS GmbH shall not be liable for the improper or incomplete transmission > of the information contained in this communication nor for any delay in its > receipt. > MELOS GmbH does not guarantee that the integrity of this communication has > been maintained nor that this communication is free of viruses, > interceptions or interference. > > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > > http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk > _______________________________________________ > Orclib-devel mailing list > Orc...@li... > https://lists.sourceforge.net/lists/listinfo/orclib-devel > -- Vincent Rogier -- Vincent Rogier |
From: vincent r. <vin...@gm...> - 2015-02-23 08:04:58
|
For information, Git repository has been updated. Ocilib ++ compiles now smoothly with old gcc versio ns and clang old and recent versions:) Le 17 févr. 2015 17:14, "vincent rogier" <vin...@gm...> a écrit : > Sure ! > > Il will add support for Clang asap and also modify the code to work with > older versions of GCC. > > This may take few days. I will probably have all done by next week ! > > I will let you known as soon as compatibility with CLang will be done (2 > or 3 days) > > Regards, > > Vincent > > On Tue, Feb 17, 2015 at 3:44 PM, Christoph Duelli <du...@me...> > wrote: > >> I gave it a try on a new SLES12 installation. >> >> The code now does compile with g++ (4.8.3) without warning. >> >> clang 3.5.1 is not quite happy, however: >> 1) before class Element (ocilib.hpp, line 4610) a forward declaration of >> class Iterator is needed; >> otherwise the friend declaration a few lines below fails >> class Iterator; (add around line 4602) >> >> >> >> 2) /tmp/ocilib/include/ocilib_impl.hpp:2649:46: error: no member named >> 'GetContent' in 'Lob<TLobObjectType, TLobOracleType>' >> return Lob<TLobObjectType, TLobOracleType>::GetContent(); >> >> There is no GetContent in Lob, however... there is a conversion >> operator, though: >> operator TLobObjectType() const; >> I am not sure, whether the GetContent is missing, the conversion >> operator should be renamed to GetContent... >> >> >> >> 3) warnings... please check, if this is a problem >> soft@sles12test:/labor/source/pakete/qt5> clang++ -c -Wall -I >> /tmp/ocilib/include -o /tmp/ocilibtest.o /tmp/ocilibtest.cpp >> In file included from /tmp/ocilibtest.cpp:36: >> In file included from /tmp/ocilib/include/ocilib.hpp:8185: >> /tmp/ocilib/include/ocilib_impl.hpp:2277:38: warning: variable 'minutes' >> is uninitialized when used here [-Wuninitialized] >> SetDateTime(year, month, day, hour, minutes, seconds, >> milliseconds); >> ^~~~~~~ >> /tmp/ocilib/include/ocilib_impl.hpp:2274:47: note: initialize the >> variable 'minutes' to silence this warning >> int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, >> milliseconds; >> ^ >> = 0 >> /tmp/ocilib/include/ocilib_impl.hpp:2277:47: warning: variable 'seconds' >> is uninitialized when used here [-Wuninitialized] >> SetDateTime(year, month, day, hour, minutes, seconds, >> milliseconds); >> ^~~~~~~ >> /tmp/ocilib/include/ocilib_impl.hpp:2274:56: note: initialize the >> variable 'seconds' to silence this warning >> int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, >> milliseconds; >> ^ >> = 0 >> /tmp/ocilib/include/ocilib_impl.hpp:2277:56: warning: variable >> 'milliseconds' is uninitialized when used here [-Wuninitialized] >> SetDateTime(year, month, day, hour, minutes, seconds, >> milliseconds); >> ^~~~~~~~~~~~ >> /tmp/ocilib/include/ocilib_impl.hpp:2274:70: note: initialize the >> variable 'milliseconds' to silence this warning >> int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, >> milliseconds; >> ^ >> = 0 >> >> It would be great if you could make the small fixes as to support clang >> as well. >> (And maybe add a note that the C++ interface requires a somewhat newish >> compiler.) >> >> >> Best regards >> >> -- >> Christoph Duelli >> Dipl.-Inf. >> Software-Entwickler >> Tel.: +49 8238/9611-38 >> Fax: +49 8238/9611-99 >> mailto: chr...@me... >> >> >> >> >> >> --------------------------------------------------------------------------------- >> MELOS-Medizinische Labor-Organisations-Systeme GmbH >> Franz-Beer-Straße 6 >> 86459 Gessertshausen >> Tel.: +49 8238/9611-0 >> Fax: +49 8238/9611-99 >> mailto: in...@me... >> URL: www.melosgmbh.de >> >> Amtsgericht Augsburg, HRB 13226 >> USt-IdNr. DE 130 958 139 >> Geschäftsführer: >> Herbert Mayer, Andreas Manntz, Helmut Welsch >> -------------------------------------------- >> This e-mail (including any attachments) is confidential and may be >> privileged. If you have received it by mistake, please notify the sender by >> e-mail and delete it from your system. >> Any unauthorised use or dissemination of this e-mail or its contents in >> whole or in part is strictly prohibited. Please note that e-mails are >> susceptible to change. >> MELOS GmbH shall not be liable for the improper or incomplete >> transmission of the information contained in this communication nor for any >> delay in its receipt. >> MELOS GmbH does not guarantee that the integrity of this communication >> has been maintained nor that this communication is free of viruses, >> interceptions or interference. >> >> >> >> ------------------------------------------------------------------------------ >> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server >> from Actuate! Instantly Supercharge Your Business Reports and Dashboards >> with Interactivity, Sharing, Native Excel Exports, App Integration & more >> Get technology previously reserved for billion-dollar corporations, FREE >> >> http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk >> _______________________________________________ >> Orclib-devel mailing list >> Orc...@li... >> https://lists.sourceforge.net/lists/listinfo/orclib-devel >> > > > > -- > Vincent Rogier > > > > -- > Vincent Rogier > |
From: vincent r. <vin...@gm...> - 2015-02-18 22:41:59
|
I will fix this. Thus does it compiles with clang 3.5.1 and the modifications you're mentionning?. I cannot check all compiler versions :( At least i will make it work with the versions of your first email. Le 17 févr. 2015 15:44, "Christoph Duelli" <du...@me...> a écrit : > I gave it a try on a new SLES12 installation. > > The code now does compile with g++ (4.8.3) without warning. > > clang 3.5.1 is not quite happy, however: > 1) before class Element (ocilib.hpp, line 4610) a forward declaration of > class Iterator is needed; > otherwise the friend declaration a few lines below fails > class Iterator; (add around line 4602) > > > > 2) /tmp/ocilib/include/ocilib_impl.hpp:2649:46: error: no member named > 'GetContent' in 'Lob<TLobObjectType, TLobOracleType>' > return Lob<TLobObjectType, TLobOracleType>::GetContent(); > > There is no GetContent in Lob, however... there is a conversion > operator, though: > operator TLobObjectType() const; > I am not sure, whether the GetContent is missing, the conversion > operator should be renamed to GetContent... > > > > 3) warnings... please check, if this is a problem > soft@sles12test:/labor/source/pakete/qt5> clang++ -c -Wall -I > /tmp/ocilib/include -o /tmp/ocilibtest.o /tmp/ocilibtest.cpp > In file included from /tmp/ocilibtest.cpp:36: > In file included from /tmp/ocilib/include/ocilib.hpp:8185: > /tmp/ocilib/include/ocilib_impl.hpp:2277:38: warning: variable 'minutes' > is uninitialized when used here [-Wuninitialized] > SetDateTime(year, month, day, hour, minutes, seconds, > milliseconds); > ^~~~~~~ > /tmp/ocilib/include/ocilib_impl.hpp:2274:47: note: initialize the > variable 'minutes' to silence this warning > int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, > milliseconds; > ^ > = 0 > /tmp/ocilib/include/ocilib_impl.hpp:2277:47: warning: variable 'seconds' > is uninitialized when used here [-Wuninitialized] > SetDateTime(year, month, day, hour, minutes, seconds, > milliseconds); > ^~~~~~~ > /tmp/ocilib/include/ocilib_impl.hpp:2274:56: note: initialize the > variable 'seconds' to silence this warning > int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, > milliseconds; > ^ > = 0 > /tmp/ocilib/include/ocilib_impl.hpp:2277:56: warning: variable > 'milliseconds' is uninitialized when used here [-Wuninitialized] > SetDateTime(year, month, day, hour, minutes, seconds, > milliseconds); > ^~~~~~~~~~~~ > /tmp/ocilib/include/ocilib_impl.hpp:2274:70: note: initialize the > variable 'milliseconds' to silence this warning > int tmpYear, tmpMonth, tempDay, hour, minutes, seconds, > milliseconds; > ^ > = 0 > > It would be great if you could make the small fixes as to support clang > as well. > (And maybe add a note that the C++ interface requires a somewhat newish > compiler.) > > > Best regards > > -- > Christoph Duelli > Dipl.-Inf. > Software-Entwickler > Tel.: +49 8238/9611-38 > Fax: +49 8238/9611-99 > mailto: chr...@me... > > > > > > --------------------------------------------------------------------------------- > MELOS-Medizinische Labor-Organisations-Systeme GmbH > Franz-Beer-Straße 6 > 86459 Gessertshausen > Tel.: +49 8238/9611-0 > Fax: +49 8238/9611-99 > mailto: in...@me... > URL: www.melosgmbh.de > > Amtsgericht Augsburg, HRB 13226 > USt-IdNr. DE 130 958 139 > Geschäftsführer: > Herbert Mayer, Andreas Manntz, Helmut Welsch > -------------------------------------------- > This e-mail (including any attachments) is confidential and may be > privileged. If you have received it by mistake, please notify the sender by > e-mail and delete it from your system. > Any unauthorised use or dissemination of this e-mail or its contents in > whole or in part is strictly prohibited. Please note that e-mails are > susceptible to change. > MELOS GmbH shall not be liable for the improper or incomplete transmission > of the information contained in this communication nor for any delay in its > receipt. > MELOS GmbH does not guarantee that the integrity of this communication has > been maintained nor that this communication is free of viruses, > interceptions or interference. > > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > > http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk > _______________________________________________ > Orclib-devel mailing list > Orc...@li... > https://lists.sourceforge.net/lists/listinfo/orclib-devel > |
From: vincent r. <vin...@gm...> - 2015-02-18 22:36:14
|
Hi, I got really busy and only found time for setuping clang on my box. I will start testing clang tomorrow. Could send me the complete gcc 4.3.6 failing build error log ? And also the clang one ? The clamng error you pasted in your mail is weird as it is like it does not see the class operator overload.... Regards, Vincent Le 17 févr. 2015 11:46, "Christoph Duelli" <du...@me...> a écrit : > Trying to build the .cpp example program from the website > > #include "ocilib.hpp" > using namespace ocilib; > > int main(void) > { > try > { > Environment::Initialize(); > > Connection con("db", "usr", "pwd"); > Statement st(con); > st.Execute("select * from products"); > Resultset rs = st.GetResultset(); > while (rs.Next()) > { > std::cout << "code:" << rs.Get<int>(1) << " name: " << > rs.Get<ostring>(2) << std::endl; > } > std::cout << "=> Total fetched rows : " << rs.GetCount() << > std::endl; > } > catch(Exception &ex) > { > std::cout << ex.GetMessage() << std::endl; > } > > Environment::Cleanup(); > return EXIT_SUCCESS; > } > > I get compile errors using clang++ (version 3.1), or g++ (4.3.6): > (I am running OpenSuSE linux 11.4). > > Use clang++/g++ call: > clang++ -c -Wall -I $OCILIB/include -o .obj/ocilibtest.o ocilibtest.cpp > > Output of g++ > g++ -c -Wall -I /usr/local/melos/3rdparty/ocilib/include -o > .obj/ocilibtest.o ocilibtest.cpp > In file included from > /usr/local/melos/3rdparty/ocilib/include/ocilib.hpp:8183, > from ocilibtest.cpp:36: > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp: In member > function 'void ocilib::HandleHolder<THandleType>::Acquire(THandleType, > int (*)(void*), ocilib::Handle*)': > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: > expected type-specifier > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: > expected `>' > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: > expected `(' > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: > expected primary-expression before '>' token > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:386: error: > expected `)' before ';' token > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:390: error: > expected type-specifier > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:390: error: > expected `; > ... > > Output of clang++: > clang++ -c -Wall -I /usr/local/melos/3rdparty/ocilib/include -o > .obj/ocilibtest.o ocilibtest.cpp > In file included from ocilibtest.cpp:36: > /usr/local/melos/3rdparty/ocilib/include/ocilib.hpp:4612:39: error: no > class named 'Iterator' in 'Collection<TDataType>' > friend class Collection<TDataType>::Iterator; > ~~~~~~~~~~~~~~~~~~~~~~~^ > In file included from ocilibtest.cpp:36: > In file included from > /usr/local/melos/3rdparty/ocilib/include/ocilib.hpp:8183: > /usr/local/melos/3rdparty/ocilib/include/ocilib_impl.hpp:838:23: error: > no matching function for call to 'OCI_ErrorGetString' > return MakeString(OCI_ErrorGetString(*this)); > ^~~~~~~~~~~~~~~~~~ > /usr/local/melos/3rdparty/ocilib/include/ocilib.h:1969:34: note: > candidate function not viable: no known conversion from 'const > ocilib::Exception' to 'OCI_Error *' for 1st argument; > OCI_EXPORT const otext * OCI_API OCI_ErrorGetString > ^ > .... > > > Is building the C++ code under linux known to work? > > > Best regards > > -- > Christoph Duelli > > > > > > --------------------------------------------------------------------------------- > MELOS-Medizinische Labor-Organisations-Systeme GmbH > Franz-Beer-Straße 6 > 86459 Gessertshausen > Tel.: +49 8238/9611-0 > Fax: +49 8238/9611-99 > mailto: in...@me... > URL: www.melosgmbh.de > > Amtsgericht Augsburg, HRB 13226 > USt-IdNr. DE 130 958 139 > Geschäftsführer: > Herbert Mayer, Andreas Manntz, Helmut Welsch > -------------------------------------------- > This e-mail (including any attachments) is confidential and may be > privileged. If you have received it by mistake, please notify the sender by > e-mail and delete it from your system. > Any unauthorised use or dissemination of this e-mail or its contents in > whole or in part is strictly prohibited. Please note that e-mails are > susceptible to change. > MELOS GmbH shall not be liable for the improper or incomplete transmission > of the information contained in this communication nor for any delay in its > receipt. > MELOS GmbH does not guarantee that the integrity of this communication has > been maintained nor that this communication is free of viruses, > interceptions or interference. > > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > > http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk > _______________________________________________ > Orclib-devel mailing list > Orc...@li... > https://lists.sourceforge.net/lists/listinfo/orclib-devel > |