Qt5.1/Qt5.2 + Mac OS 10.9 (Mavericks) + XCode 5.0.2, les symboles non définis pour l'architecture x86_64

Environnement : Mac OS 10.9 + Qt5.1/Qt5.2 + OpenCV2.4.7 + XCode(5.0.2)

Je peux compiler le programme suivant via un terminal

g++ -L/usr/local/lib -lopencv_core -lopencv_highgui \
    -I/usr/local/include  main.cpp

Le programme.out s'exécute normalement.

Cependant, lors de l'utilisation de Qt 5.1/5.2 pour exécuter cette OpenCV programme,
J'ai eu "les symboles non définis pour l'architecture x86_64".

Cependant, Qt5 fonctionne normalement pour un simple HelloWorld programme en c++.

Ce qui se passe ?

Voici le code.

#include <iostream>
#include "opencv2/highgui/highgui.hpp"

using namespace std ;
using namespace cv ;

int main()
{
    Mat img ;

    img = imread("image.jpg") ;

    return 0;
}

Et c'est le projet de création d'

INCLUDEPATH += /usr/local/include

LIBS += -L/usr/local/lib

LIBS += -lopencv_core -lopencv_highgui -v

cache()

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

Ici est le message de la compilation

/Users/XXX/Qt5.2.0/5.2.0-beta1/clang_64/bin/qmake -spec macx-clang CONFIG+=debug -o Makefile /Users/XXX/Desktop/untitled/untitled.pro

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -headerpad_max_install_names -Wl,-syslibroot

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.6 -o untitled main.o   -L/usr/local/lib -lopencv_core -lopencv_highgui -v 

avec l'option-v pour afficher l'invocation

Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -headerpad_max_install_names -macosx_version_min 10.6.0 -o untitled -lcrt1.10.6.o -L/usr/local/lib -syslibroot

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk main.o -lopencv_core -lopencv_highgui -lstdc++ -lSystem

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/5.0/lib/darwin/libclang_rt.osx.a

Et voici le message d'erreur

Undefined symbols for architecture x86_64:
"cv::imread(std::string const&, int)", referenced from:
      _main in main.o
.... and so on

J'ai vérifié le problème n'a rien à voir avec -lstdc++ ou -std=c++11 ou -stdlib=libstdc++.
en utilisant la ligne de commande de compilation.

Toute idée ou suggestion?

vous n'êtes pas le lien OpenCV, il semblerait. ou imread n'est pas de ceux que vous avez lié
Merci pour le commentaire. Je pense aussi que le problème est l'éditeur de liens. J'ai essayé d'exécuter un démarrage simple:le système de fichiers du programme. Il me donne la même erreur.
le problème pourrait être que vous avez besoin d'un autre composant à être lié, comme -lopencv_core -lopencv_highgui -lopencv_somethingforimages
Depuis que je peux compiler dans le terminal avec "g++ -L/usr/local/lib -lopencv_core -lopencv_highgui -I/usr/local/include main.cpp" je pense que ce problème n'est pas causé par le manque, l'. De toute façon, pense pour votre aide, mais je pense que je devrais retourner à Mac OS X10.8, puisque j'ai travaillé sur ce pendant 5 jours.
bien vous pourriez vous retrouver avec les différentes version de la lib si vous l'avez installé plus d'une fois... vous pouvez trouver la version que vous utilisez et essayer de lire les symboles avec nm pour voir si c'est dans la bibliothèque.

OriginalL'auteur maythe4thbewithu | 2013-12-03