J'ai regardé cela pendant les deux derniers jours sans succès. J'ai essayé de créer une application graphique avec Qt. Il semble que mon LNK2019 naîtrait de d'un constructeur inappliquées:LNK2019: Portabilité de Windows à OSX
main.obj:-1: error: LNK2019: unresolved external symbol "public: __cdecl ArbObject::ArbObject(class Table *,int *,int,int,int,int,int)" (??
[email protected]@[email protected]@@[email protected]) referenced in function "class std::vector<class ArbObject *,class std::allocator<class ArbObject *> > __cdecl
createArbObjects(class QList<class QStringList> &,class Table *,int &)" ([email protected]@[email protected]@@[email protected]@@@[email protected]@@[email protected]@AEAV?
[email protected]@@@@[email protected]@[email protected])
Cependant, le constructeur est là et mis en œuvre dans le fichier .cpp approprié.
.h file has this:
ArbObject(Table* tr, int* rgb, int t, int xpos, int ypos, int w, int h);
.cpp file has this:
ArbObject::ArbObject(Table* tr, int* rgb, int t, int xpos, int ypos, int w, int h)
: QWidget((QWidget*)tr), obj_typ(t), xpos(xpos), ypos(ypos),wid(w), hei(h)
{
...
}
J'ai inclus tout ce que je peux penser. Cela ne fonctionne pas sur ma machine Windows, cependant cela fonctionne parfaitement sur mon mac. Ma question est de savoir quelles sortes de dépendances pourraient causer ce genre de problème? Quelles autres voies puis-je explorer pour résoudre mon problème?
- Est-ce basé sur un compilateur? MSVC vs Clang
- Les deux incluent des fichiers différents dans le processus de liaison, par conséquent, il peut ne pas fonctionner sur une plate-forme par opposition à une autre.
EDIT: fixe
Voir la réponse!
Avez-vous essayé de compiler votre application avec le compilateur MinGW sous Windows? Quelle version de Qt utilisez-vous? –
Un constructeur doit toujours être __thiscall, pas __cdecl. Difficile de voir comment tu as fait ça. –
@HansPassant, voici ma ligne dans la fonction à laquelle le compilateur fait référence ArbObject * a = new ArbObject (table, RGB, typ, xpos, ypos, largeur, hauteur); Toutes les valeurs ici sont ints sauf pour table et RVB. Il est également dit Fichier non trouvé: main.obj. Peut-être utilise-t-il une ancienne version du fichier main.obj, mais la reconstruction ne change rien du tout. – hbhrugubanda