Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 3
1

error LNK2001: исходники роботоспособной dll-ки при линковании не находит функций

20.10.2008, 22:17. Просмотров 2328. Ответов 2
Метки нет (Все метки)

OS: Windows XP,
Язык: Visual C++ Express 2008

у меня была задача дополнить рабочую cpp .dll-ку одной функцийей, потом на основе дополненой dll-ки сделать java-dll-ку(jepi), ну а дальше программирование в jave...

проблема в том что, как нормальный человек, я пытаюсь перед тем как начать что-то изменять скомпилировать хотя бы оригинальные исходники без всяких изменений и даже это у меня не выходит. Компилирование проходит успешно, а вот Линкер кидает ошибки :

Код
Bibliothek "___________bli.lib" und Objekt "bli.exp" werden erstellt.
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl std::operator+(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,char)" (??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@D@Z)".
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) private: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Eos(unsigned int)" (__imp_?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEXI@Z)".
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) bool __cdecl std::operator==(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_??8std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z)".
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) private: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Split(void)" (__imp_?_Split@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEXXZ)".
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) char const `private: static char const * __cdecl std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Nullstr(void)'::`2'::_C" (__imp_?_C@?1??_Nullstr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAPBDXZ@4DB)".
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) private: bool __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Grow(unsigned int,bool)" (__imp_?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAE_NI_N@Z)".
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl std::operator+(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,char const *)" (??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@PBD@Z)".
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl std::operator+(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z)".
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) private: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Tidy(bool)" (__imp_?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z)".
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) bool __cdecl std::operator==(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,char const *)" (__imp_??8std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z)".
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl std::operator+(char const *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBDABV10@@Z)".
1>bla_mfcdll.lib(bla.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) void __cdecl std::_Xran(void)" (__imp_?_Xran@std@@YAXXZ)".
1>bla_mfcdll.lib(usbapi.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__MessageBoxA@16".
Был на саите поддержки MicroSoft, смотрел предлагаемые решения по LNK2001
, как и так по тексту ошибки не трудно догадаться - программа очевидно не может наити функции на которую есть ссылка (в jave я бы сказал - не хватает библиотеки, на многих форумах говорят похожее)... Но ошибку кидает какраз таки используемоя мною библиотека :

bla_mfcdll.lib - Interface для коммуникации с особым перифирийным устройством, составная часть

Из документации: " bla_mfcdll.lib: multi-threaded applications (DLL) and applications using the MFC as DLL"

(и это единственная библиотека, которая мне предоставленна к headeram, точнее есть ещё две другие версии этой же libы: "multi-threaded applications and applications using the MFC as static library" i "single-threaded applications and applications not using the MFC", но они на сколько понимаю алтернативы, а не дополнения - да и их я уже в разных комбинациях перепробовал )...

к тому же по тексту ошибок мне кажется, что не хватает какой-то стандартной библиотеки "class std::basic_string..." -> class single threaded basic string - подрозумиваю, это же не из ряда вон что-то выходящее.

Тэ поддержка BLABLA пока не отзывается.

Из решений предлагаемых Microsoft (кстати в нескольких форумах это решение тоже предлагалось) было ещё игнорировать стандартные библиотеки -> тогда у меня вместо 14 ошибок линкер выдаёт 170.

Компилер у меня сейчас стоит на /MD соответственно библиотеке bla_mfcdll.lib

Compiler:
Код
/Od /I "___________" /I "___________\global" /I "____________" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "EPI_EXPORTS" /D "_WINDLL" /D "_UNICODE" /D "UNICODE" /D "_AFXDLL" /FD /EHsc /RTC1 /MD /Fo"Release\\" /Fd"Release\vc90.pdb" /FR"Release\\" /W3 /nologo /c /ZI /TP /errorReport:prompt
Linker:
Код
/OUT:"________bli.dll" /INCREMENTAL /NOLOGO /LIBPATH:"________\Release" /DLL /MANIFEST /MANIFESTFILE:"Release\bli.dll.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"_____________\Release\bli.pdb" /SUBSYSTEM:WINDOWS /LTCG /DYNAMICBASE:NO /MACHINE:X86 /ERRORREPORT:PROMPT bla_mfcdll.lib ws2_32.lib odbc32.lib odbccp32.lib
Был бы рад конструктивным предложениям.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2008, 22:17
Ответы с готовыми решениями:

Ошибка при компановке DLL: new error LNK2001: unresolved external symbol 'struct _iobuf *
Подскжите, что делать? В С++.net можно объявить пространство имен и набор классов внутри него....

Error LNK2020: unresolved token при линковании
Тоже не могу разобраться с ошибкой error LNK2020: unresolved token, как с ней бороться???

Статический поток - error LNK1120 error LNK2001
в классе есть статический поток типа fstream, в который будут сливаться данные, все гуд а линковщик...

Ошибка: "error LNK2001: неразрешенный внешний символ" при реализации шаблонного синглтона
Доброго времени суток. Пытаюсь написать шаблон для синглтона, есть след. код Сам шаблон синглтона...

2
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 3
22.10.2008, 12:46  [ТС] 2
Нашел в одном Форуме, что проблема может быть вызвана использованием Express версии VC++, поставил Visual Studio 2008 Professional - проблема осталась
0
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 3
28.10.2008, 21:05  [ТС] 3
Всем привет,

помощи к сожалению не дождался, но проблему решить удалось. Если у кого что похожее будет:

1. "multi-threaded applications (DLL) and applications using the MFC as DLL" для библиотек устонавливается в:
Project->Properties->Configuration properties->General->Use of MFC
т.е. не в Compiler properties.

2. Предоставленная мне библиотека была скомпилирована в VS2006 а не в VS2008, переустановка версии Visual Studio решила оставшиешя проблемы.

П.С: так же помогли советы в других форумах касательно стандартных библиотек, которые нужно было включить в проект: ws2_32.lib odbc32.lib odbccp32.lib user32.lib

До следующего свидания, надеюсь более продуктивного
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2008, 21:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Подключила SFML. При компиляции ошибка error LNK2001: неразрешенный внешний символ ""public
#include &lt; SFML/Graphics.hpp &gt; int main() { sf::RenderWindow window(sf::VideoMode(200, 200),...

error LNK2001: unresolved external symbol---fatal error LNK1120: 4 unresolved externals
Здравствуйте! Занимаюсь программированием не очень долго, прошу объяснить в доступных терминах для...

error LNK2001
Здравствуйте. Visual Studio 2010 выдаёт ошибку error LNK2001. Спомощью MFC Application создаю...

Error LNK2001
Учу С++ по самоучителю и он предложил код огромного проекта. #include &lt;iostream&gt; using namespace...

Error LNK2001
Выдает ошибку error LNK2001 при пустой программе.

error LNK2001:
Помогите пожалуйста... Написал простейший плагин на QT... У меня есть другой плагин, в который я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.