Rechercher : dans
Par :

C++ error LNK2001: unresolved external symbol

Dernière réponse le 11 jui 2008 à 12:48:17 mira, le 1 jui 2004 à 11:41:40 
 Signaler ce message aux modérateurs

Bonjour tout le monde !

mon programme VisualC++ compile tres bien, mais j'arrive pas à faire le BUILD de l'exe.
il me donne :

DLLExplicit1.obj : error LNK2001: unresolved external symbol _mlfMira
Debug/DLLExplicit1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

est ce qu'il y a quelqu'un qui pourra m'aider ????


MERCI

Meilleures réponses pour « C++ error LNK2001: unresolved external symbol » dans :
Interfacer du code assembleur et du C VoirInterfacer du code assembleur et du C Introduction Appeler du code assembleur écrit dans un fichier source externe Avec Nasm (x86 uniquement) Compilation/Execution sous Linux Avec Gcc (multiplateforme) Introduction Si, à tout hasard,...
Langage C++ - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C++ sont typées, c'est-à-dire que les données contenues dans...

1

firejoke, le 1 jui 2004 à 12:59:36
  • +1

Ben enfait ce message s'affiche quand le compilo n'arrive pas a faire le lien entre les différents modules de ton programme.
Regarde si tu a bien les bon .h et tout ce qui s'ensuit

@+ Mr Jo

Répondre à firejoke

2

Canard007, le 1 jui 2004 à 14:08:47

Si tu as fait des fonctions en dessous du main...verifie que tu as bien fait la declaration des prototype avant le main.. ;-)

Répondre à Canard007

4

damien, le 1 jui 2004 à 17:12:08

Dans ce cas c'est plutot le compilateur qui se ferait entendre.

En fait il s'agit surement d'une variable declaré extern et qu'il faut bien retrouver qq part.
A+
Damien

Répondre à damien

3

pom, le 1 jui 2004 à 17:05:10

Si tu as fait des fonctions inline mets les dans un .h et non un .cpp et n'oublie pas de les redéclarer hors de la classe

pom

Répondre à pom

5

Mira, le 2 jui 2004 à 10:05:15

En fait, je dois utiliser des fonctions que j'ai faite en Matlab, c'est pour cela , j'ai créé le DLL + .H du programme matlab (ils se cront automatiquement en étant extern dans le .H) , et j'ai appelé une fonction.
comment je peux alors appeler mes fonctions matlab pour ne pas avoir cet erreur ???

Répondre à Mira

6

Mira, le 2 jui 2004 à 10:21:15

Laa c tres bizarre ce qui m'arrive !

j'ai en Visual C++ le programme suivant :

#include <iostream>

int main(void)
{
return 0;
}

et il me donne toujours l'erreur :
LIBCD.lib(wwincrt0.obj) : error LNK2001: unresolved external symbol _wWinMain@16
Debug/zzz.exe : fatal error LNK1120: 1 unresolved externals

je ne comprend plus rien !!!!!!

quelqu'un pourra m'aider ??

Répondre à Mira

7

pom, le 2 jui 2004 à 14:33:59

Pour appeler des fonctions Matlab à partir du C++ il faut que tu fasses un MEX File. Mais c'est super reloud à faire (et à comprendre surtout).

Pour ma part, en général je fais mes gros calculs en C++, je sauvegarde sur le disque dur le résultat (à l'aide d'un ofstream) puis je le load en Matlab puis je sauvegarde les résultats sur le disque dur à l'aide de la commande save (de Matlab). J'utilise ainis l'interface graphique de Matalb que je trouve très bien. Mais il est vrai que je ne cesse de jongler mais ca marche en tout cas.

concernant ton dernier message : j'utilise le c++ sous linux (car je ne trouve pas que Windows soit super au top pour faire de gros calculs.

1) Je tape int main() et non int main(void).
2) crée toi un tout nouveau répertoire et refait ton test
3) n'aurais-tu pas supprimer un fichier ?
4) Si ton prgm compile, utilise le débugger et affiche toutes les variables


pom

Répondre à pom

8

os_killer, le 4 oct 2005 à 15:30:04

Salut

Pour enlever ton probleme de link avec ta lib ignore l

Répondre à os_killer

9

winy62, le 14 déc 2006 à 10:53:12

Il existe un patch, disponible sur le site Microsoft, pourtant il n'est pas en téléchargement, il faut appeler un numéro de téléphone en 08..... C'est assez inacceptable, non ? voici le lien : http://support.microsoft.com/kb/909350/fr

Répondre à winy62

10

mamiemando, le 14 déc 2006 à 21:34:15

On dirait une libc cassée. Moi à ta place j'installerai dev cpp et j'arrêterais de travailler avec visual c++. En plus leur compilateur est un peu bizarre et parfois quand on passe à gcc on a des mauvaises surprises sur ses anciens codes. Or justement dev cpp utilise gcc et en plus c'est gratuit... alors autant en profiter :-)
http://www.bloodshed.net/devcpp.html

Bonne chance

Répondre à mamiemando

11

Kyrool, le 11 fév 2007 à 18:12:25

Juste histoire de donner une info supplémentaire à ceux qui rencontreraient cette erreur, comme cela a été mon cas:
vérifiez vos déclarations de fonction.
Je m'explique: j'ai déclaré en tête de programme un prototype sous la forme "void fonction(int, vector<int>, ...)"
et lorsque j'ai voulu écrire à proprement parler la fonction, j'ai écrit: "void fonction(int &i, vector<int> vec, ...)"
La seule différence du & pour faire référence à la variable a suffit pour tout faire planter et le compilateur a été incapable de me le dire!

Répondre à Kyrool

12

nunuxletux, le 22 déc 2007 à 21:58:58

Salut,

En faite il semblerai que ce soit une erreur qui est levé quand le compilo est dans les choux....
Pour en savoir un peu plus sur l'erreur il faut déjà voir si dans les "settings" l'option "Microsoft Fondation Classes" est à "Use MFC in a shared DLL" ...
Après le choix de cette option le compilo a réussit à identidier le problème....(dans mon cas....)

Si cela peut aider...

Répondre à nunuxletux

13

Darth_Krant, le 5 jun 2008 à 17:17:42

Bonjour à toi mira, vérifie bien que ton programme puisse se réaliser dans la fenêtre adaptée. Exemple : utiliser une fonction prévue pour l'exécution d'une fenêtre DOS alors que tu travaille en fenêtre normale...

Répondre à Darth_Krant

14

 dOob, le 11 jui 2008 à 12:48:17

J'avais le même problème,

Il s'agissait en fait des librairies (opengl/sdl dans mon cas) qui n'était incluse que dans les propriétés "DEBUG".
Il m'a suffit de rajouter les dépendances dans les propriétés "ACTIVE" du projet.

Répondre à dOob