2010-11-20 2 views
0

Я пытаюсь скомпилировать программу на C с использованием компилятора Intel icl в MINGW/64. Программа использует следующий код:GetUserName под Win64

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

Я использую следующую команду компиляции:

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

и я связывая против UserEnv.Lib из Microsoft SDK.

Intel (R) C++ Intel (R) 64 Compiler XE для приложений, работающих на Intel (R) 64, версия Microsoft (R) Растущие Linker Версия 9.00.21022.08 отъезда: User.exe user.obj

user.obj : error LNK2019: unresolved external symbol __imp_GetUserProfileDirectoryA referenced in function main 

Любая идея, как решить эту проблему?

РЕШЕНИЕ:
Решение заключается в использовании

/ссылка/с/Program \ Files/Microsoft \ SDKs/Windows/v6.0A/Lib/x64/UserEnv.Lib/с/Program \ файлы/Microsoft \ SDKs/Windows/v6.0A/Lib/x64/A


Я скопировал файл UserEnv.lib из Microsoft SDK (x64, 6,0) в текущий рабочий каталог и откомпилировать программу с

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

LNK2019: неразрешенный внешний символ __imp_GetUserNameA ссылка в функции главного test.obj: LNK2019 Ошибка: неразрешенный внешний символ __imp_OpenProcessToken ссылка в функции главного test.obj: LNK2019 Ошибка: неразрешенный внешний символ -

и я все еще получаю неразрешенные символы.

Olaf

ответ

0

Вам нужно добавить userenv.lib ваши входные библиотеки для компоновщика, чтобы увидеть GetUserProfileDirectory().

EDIT: Это было некоторое время, так как я прикоснулся компилятор Intel, но IIRC вы должны использовать /link ввести параметры компоновщика:

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

Я пытался связать Побейте с UsderEnv Lib от – Olaf

+0

Я скопировал файл UserEnv.lib из Microsoft SDK (x64, 6.0) в текущий рабочий каталог и скомпилировал программу с помощью – Olaf

+0

. Я скопировал файл UserEnv.lib из Microsoft SDK (x64, 6.0) в текущий рабочий каталог и скомпилировал программу с помощью $ icl test.c -DMINGW32 UserEnv.Lib icl: ПРИМЕЧАНИЕ. Оценка n период для этого продукта заканчивается на UTC 10-дек-2010. test.c test.obj: Ошибка LNK2019: неразрешенный внешний символ __imp_GetUserNameA ссылки в функции главного test.obj: ошибки LNK2019: неразрешенный внешний символ __imp_OpenProcessToken ссылки в функции главного test.obj: ошибки LNK2019: неразрешенный внешний символ – Olaf

Смежные вопросы