2010-11-20 3 views
0

J'essaie de compiler un programme C en utilisant le compilateur Intel icl sous MINGW/64. Le programme utilise le code suivant:GetUserName sous Win64

#include <Userenv.h> 
HANDLE process; 
HANLDE token; 
GetUserProfileDirectory(process, TOKEN_QUERY, &ptoken) 

J'utilise la commande de compilation suivante:

$ icl -g -DMINGW32 -DTESTMAIN user.c -o user -UserEnv.Lib 

et je suis contre le UserEnv.Lib relie du SDK Microsoft.

Intel (R) C++ Intel (R) 64 XE compilateur pour des applications fonctionnant sur Intel (R) 64, Microsoft Version (R) incrémental Linker Version 9.00.21022.08 départ: user.exe

user.obj

Une idée de comment résoudre ce problème?

SOLUTION:
La solution est d'utiliser

/link/c/Program Files \/Microsoft \ SDKs/Windows/v6.0A/Lib/x64/UserEnv.Lib/c/Program Files \ fichiers/Microsoft \ SDKs/Windows/v6.0A/Lib/x64/A


J'ai copié le fichier UserEnv.lib à partir du SDK Microsoft (x64, 6.0) dans le répertoire de travail courant et compilé le programme avec

$ icl test.c -DMINGW32 ./UserEnv.Lib

LNK2019: symbole externe non résolu __imp_GetUserNameA référencé dans la fonction principale test.obj: erreur LNK2019: symbole externe non résolu __imp_OpenProcessToken référencé dans la fonction principale test.obj: erreur LNK2019: symbole externe non résolu -

et je reçois toujours les symboles non résolus.

Olaf

Répondre

0

Vous devez ajouter userenv.lib à vos bibliothèques d'entrée pour l'éditeur de liens pour voir GetUserProfileDirectory().

EDIT: Cela a été un moment que je l'ai touché un compilateur Intel, mais IIRC vous êtes censé utiliser /link pour introduire des options de l'éditeur de liens:

$ icl test.c -DMINGW32 /link ./UserEnv.Lib 
+0

j'ai essayé de relier againt le UsderEnv Lib de – Olaf

+0

J'ai copié le fichier UserEnv.lib à partir du Microsoft SDK (x64, 6.0) dans le répertoire de travail en cours et compilé le programme avec – Olaf

+0

J'ai copié le fichier UserEnv.lib du Microsoft SDK (x64, 6.0) dans le répertoire de travail en cours et compilé le programme avec $ icl test.c -DMINGW32 UserEnv.Lib icl: REMARQUE: L'évaluation n période pour ce produit se termine le 10-dec-2010 UTC. test.c test.obj: erreur LNK2019: __imp_GetUserNameA symbole externe non résolu référencé dans la fonction principale test.obj: erreur LNK2019: symbole externe non résolu __imp_OpenProcessToken référencé dans la fonction principale test.obj: erreur LNK2019: symbole externe non résolu – Olaf

Questions connexes