Compilation sous CentOS avec Qt5 et QxOrm
Bonsoir à tous,
Je parviens à compiler QxOrm et les classes générées par QxEE, j'ai bien les librairies, elles dépendent bien de Qt5 (check avec ldd). Je précise parce que j'ai aussi Qt4 dans mon environnement.
Je souhaite tester tout ça dans un programme existant. J'ai modifié mon makefile, avec (entre autres) les liens vers -lQxOrm -lMaLibCompileeViaLesSourcesGenereesParQxEE -lQt5Core -lQt5Sql nécessaires à la compilation.
Voici les erreurs que j'obtiens à la compilation :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
test.o: Dans la fonction QString::QString():
test.cpp:(.text._ZN7QStringC2Ev[_ZN7QStringC5Ev]+0x13): reference indefinie vers QString::shared_null
test.o: Dans la fonction QString::~QString():
test.cpp:(.text._ZN7QStringD2Ev[_ZN7QStringD5Ev]+0x2d): reference indefinie vers QString::free(QString::Data*)
test.o: Dans la fonction operator+(QString const&, char const*):
test.cpp:(.text._ZplRK7QStringPKc[_ZplRK7QStringPKc]+0x3c): reference indefinie vers QString::fromAscii(char const*, int)
test.o: Dans la fonction operator+(char const*, QString const&):
test.cpp:(.text._ZplPKcRK7QString[_ZplPKcRK7QString]+0x29): reference indefinie vers QString::fromAscii(char const*, int)
test.o: Dans la fonction QHash<QString, QString>::findNode(QString const&, unsigned int*) const:
test.cpp:(.text._ZNK5QHashI7QStringS0_E8findNodeERKS0_Pj[_ZNK5QHashI7QStringS0_E8findNodeERKS0_Pj]+0x1c): reference indefinie vers qHash(QString const&)
test.o: Dans la fonction QHashNode<QString, QString>::same_key(unsigned int, QString const&):
test.cpp:(.text._ZN9QHashNodeI7QStringS0_E8same_keyEjRKS0_[_ZN9QHashNodeI7QStringS0_E8same_keyEjRKS0_]+0x32): reference indefinie vers QString::operator==(QString const&) const
collect2: error: ld returned 1 exit status |
Ma classe test étant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
#include "test.hh"
#include "../cpp-wrapper.h"
#include "../../Qx/orm_src/include/xxx_precompiled_header.gen.h"
#include "../../Qx/orm_src/include/xxx_TEST1.gen.h"
#include <QxOrm_Impl.h>
/**
*
* Wrapper C
*
*/
void Test_test() {
xxx::Test::test();
}
using namespace yyy;
namespace xxx {
void Test::test() {
typedef shared_ptr<TEST1> Test1_ptr;
Test1_ptr t1; t1.reset(new TEST1()); t1->setCHAMP_1_STR("orm1"); t1->setCHAMP_2_INT(11);
Test1_ptr t2; t2.reset(new TEST1()); t2->setCHAMP_1_STR("orm2"); t2->setCHAMP_2_INT(12);
Test1_ptr t3; t3.reset(new TEST1()); t3->setCHAMP_1_STR("orm3"); t3->setCHAMP_2_INT(13);
typedef vector<Test1_ptr> type_lst_test1;
type_lst_test1 lst_test1;
lst_test1.push_back(t1);
lst_test1.push_back(t2);
lst_test1.push_back(t3);
qx::QxSqlDatabase::getSingleton()->setDriverName("QODBC");
qx::QxSqlDatabase::getSingleton()->setDatabaseName("xxx");
qx::QxSqlDatabase::getSingleton()->setHostName("xxx");
qx::QxSqlDatabase::getSingleton()->setUserName("xxx");
qx::QxSqlDatabase::getSingleton()->setPassword("xxx");
QSqlError daoError = qx::dao::insert(lst_test1);
}
} |
Ce qui m'étonne c'est que ça compile très bien avec les librairies de Qt4 (-lQtCore -lQtSql dans mon cas). Par contre plantage à l'exécution évidemment puisque QxOrm et MaLibCompileeViaLesSourcesGenereesParQxEE.so sont compilés avec Qt5.
Avez-vous une idée ?
Merci d'avance !