IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

error LNK2001. Problème d'architecture


Sujet :

C++

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Par défaut error LNK2001. Problème d'architecture
    Bonjour à tous,

    J'essaie de compiler sous Visual Studio un projet permettant de faire l'apprentissage d'un SVM. J'obtiens ces erreurs :
    1>main.obj : error LNK2001: symbole externe non résolu svm_save_model
    1>main.obj : error LNK2001: symbole externe non résolu svm_train
    1>main.obj : error LNK2001: symbole externe non résolu svm_free_and_destroy_model
    1>main.obj : error LNK2001: symbole externe non résolu svm_destroy_param
    Je pense que j'ai un problème dans l'architecture de mon programme:
    J'ai mon main.cpp, qui a comme include "libsvm.h", qui lui même a comme include un "svm.h". Dans ce "svm.h" il y a les déclarations des fonctions qui posent problème svm_save_model, svm_train, svm_free_and_destroy_model, svm_destroy_param. Dans svm.cpp l'implémentation de ces fonctions. Est ce qu'une architecture de la sorte peut fonctionner ? Avez vous une idée d'où vient ces erreurs ?

    Merci d'avance, et j'espère avoir été claire

    P.

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    "symbole externe non résolu" signifie que l'édition de lien a échoué.
    Est-ce que par hasard tu n'aurais pas oublié de signalé libsvm.cpp comme fichier à compiler?

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Par défaut
    Bonjour leternel et merci de ta réponse,

    Je n'ai pas de fichier libsvm.cpp..
    J'essaie de faire marcher ce code: https://github.com/DaHoC/trainHOG. Dans ce code, le main.cpp appelle libsvm.h mais il n'y a pas de libsvm.cpp

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Petite erreur de @leternel "svm.cpp" et pas "libsvm.cpp".

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Par défaut
    Ok, et comment je "signale" qu'il faut compiler svm.cpp ?

    Merci !

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    En l'ajoutant aux fichiers du projet Visual Studio que vous compilez.
    Je pense que vous devriez suivre quelques tutoriels sur VS avant de vous lancer bille en tête.

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Par défaut
    Bonjour,
    Oui il est bien présent dans le projet VS.

    J'ai déjà lu des tutos, pour des cas plus simples certes, et je pensais m'en sortir

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Postez les traces de compilation affichées dans la fenêtre Sortie de VS.

  9. #9
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Par défaut
    1>------ Début de la génération*: Projet*: 2, Configuration*: Release x64 ------
    1>La génération a démarré 24/07/2015 11:55:45.
    1>InitializeBuildStatus:
    1> Mise à jour de l'horodatage "x64\Release\2.unsuccessfulbuild".
    1>ClCompile:
    1> main.cpp
    1>c:\users\9107630y\documents\visual studio 2010\projects\2\2\libsvm.h(362): warning C4244: 'initialisation'*: conversion de 'double' en 'float', perte possible de données
    1>c:\users\9107630y\documents\visual studio 2010\projects\2\2\libsvm.h(394): warning C4018: '<'*: incompatibilité signed/unsigned
    1>c:\users\9107630y\documents\visual studio 2010\projects\2\2\libsvm.h(407): warning C4244: 'argument'*: conversion de 'double' en 'float', perte possible de données
    1>c:\users\9107630y\documents\visual studio 2010\projects\2\2\libsvm.h(414): warning C4244: '+='*: conversion de 'double' en 'float', perte possible de données
    1>main.cpp(146): warning C4244: '='*: conversion de 'unsigned __int64' en 'float', perte possible de données
    1>main.cpp(231): warning C4101: 'j'*: variable locale non référencée
    1>main.cpp(279): warning C4267: '+='*: conversion de 'size_t' en 'unsigned int', perte possible de données
    1>main.cpp(289): warning C4267: '+='*: conversion de 'size_t' en 'unsigned int', perte possible de données
    1>main.cpp(338): warning C4267: 'initialisation'*: conversion de 'size_t' en 'unsigned long', perte possible de données
    1>main.cpp(375): warning C4244: '='*: conversion de 'unsigned long' en 'float', perte possible de données
    1>main.obj : error LNK2001: symbole externe non résolu svm_train
    1>main.obj : error LNK2001: symbole externe non résolu svm_free_and_destroy_model
    1>main.obj : error LNK2001: symbole externe non résolu svm_destroy_param
    1>main.obj : error LNK2001: symbole externe non résolu svm_save_model
    1>C:\Users\9107630Y\Documents\Visual Studio 2010\Projects\2\x64\Release\2.exe : fatal error LNK1120: 4 externes non résolus
    1>
    1>ÉCHEC de la build.
    1>
    1>Temps écoulé 00:00:03.67
    ========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Il n'y aucune trace de la compilation autre que celles de main.cpp.

    "svm.cpp" n'est donc pas compilé, donc le linker ne peut utiliser le code qu'il contient pour construire l'exécutable.

    Vérifiez dans les propriétés de "svm.cpp" quelle action est demandée en cas de compilation.

  11. #11
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Par défaut
    Merci je pense pouvoir m'en sortir, j'avais en effet un souci avec svm.cpp. Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème non résolu " error LNK2001 "
    Par RAYPUR dans le forum Fortran
    Réponses: 1
    Dernier message: 27/04/2014, 18h24
  2. Réponses: 1
    Dernier message: 16/05/2008, 09h51
  3. Problème Error LNK2001
    Par manukubs42 dans le forum C++
    Réponses: 3
    Dernier message: 16/10/2007, 11h39
  4. [N-Tier] Problème conception architecture 3-tiers
    Par Royd938 dans le forum Autres
    Réponses: 3
    Dernier message: 17/06/2005, 11h47
  5. Réponses: 4
    Dernier message: 24/03/2004, 12h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo