0 / 0 / 2
Регистрация: 15.05.2015
Сообщений: 73

C++ ошибка при линковке

12.08.2018, 17:36. Показов 2104. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Значит, есть вот такой вот код для экспортирования:
Defines.h:
C++
1
2
3
4
5
6
7
8
9
10
#pragma once
#if EXPORT
#define FUNCTION(name, returnType, ...)  extern "C" returnType _declspec(dllexport) name (__VA_ARGS__)
#endif
#if IMPORT
#define FUNCTION(name, returnType, ...)  extern "C" returnType _declspec(dllimport) name (__VA_ARGS__)
#endif
#if !EXPORT && !IMPORT
#define FUNCTION(name, returnType, ...)  returnType name (__VA_ARGS__) 
#endif
Syringe.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once
#include "Defines.h"
 
#include <functional>
 
namespace Syringe
{
    FUNCTION(CreateDebugger, intptr_t, );
    FUNCTION(DestroyDebugger, bool, intptr_t pointer);
 
    FUNCTION(EnableLogging, bool, intptr_t pointer, char* fileString, size_t stringSize);
    FUNCTION(DisableLogging, bool, intptr_t pointer);
 
    FUNCTION(AddLibrary, bool, intptr_t pointer, char* libraryString, size_t stringSize);
    FUNCTION(AddDirectory, bool, intptr_t pointer, char* directoryString, size_t stringSize);
    
    FUNCTION(GetLibraries, void, intptr_t pointer, void** vector, size_t* size);
    FUNCTION(GetDirectories, void, intptr_t pointer, void** vector, size_t* size);
 
    FUNCTION(GetSearchAtLocalDirecory, bool, intptr_t pointer);
    FUNCTION(SetSearchAtLocalDirectoty, void, intptr_t pointer, bool value);
 
    FUNCTION(Run, void, intptr_t pointer, char* executableString, size_t exeStringSize, char* argumentsString, size_t argStringSize);
 
    FUNCTION(RegisterClosingCallback, void, intptr_t pointer, void* functionPointer);
    FUNCTION(RegisterInitializationCallback, void, intptr_t pointer, void* functionPointer);
 
    FUNCTION(RegisterHook, void, intptr_t pointer, intptr_t address, void* functionPointer);
    FUNCTION(RemoveHook, void, intptr_t pointer, intptr_t address, void* functionPointer);
 
    FUNCTION(GetRunState, bool, intptr_t pointer);
}
Log.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#pragma once
 
#include "Defines.h"
 
#include <string>
 
namespace Log
{
    FUNCTION(Open, void, char const* pFilename) noexcept;
 
    FUNCTION(Flush, void, ) noexcept;
 
    FUNCTION(WriteEmptyLine, void, ) noexcept;
    FUNCTION(WriteLine, void, char const* pFormat, ...) noexcept;
}
и список ошибок при линковке библиотеки с вышеупомянутыми заголовками из исполняемого файла:
Кликните здесь для просмотра всего текста
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка LNK2019 ссылка на неразрешенный внешний символ ___vcrt_GetModuleHandleW в функции "struct HINSTANCE__ * __cdecl GetPdbDll(void)" (?GetPdbDll@@YAPAUHINSTANCE__@@XZ) Debugger ...\Syringe\Debugger\MSVCRTD.lib(_pdblku p_.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp___invalid_parameter в функции "void * __cdecl std::_Allocate_manually_vector_aligned<s truct std::_Default_allocate_traits>(unsigned int)" (??$_Allocate_manually_vector_aligned@U_ Default_allocate_traits@std@@@std@@YAPAX I@Z) Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _memchr в функции "public: static char const * __cdecl std::char_traits<char>::find(char const * const,unsigned int,char const &)" (?find@?$char_traits@D@std@@SAPBDQBDIABD @Z) Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _memcmp в функции "public: static int __cdecl std::char_traits<char>::compare(char const * const,char const * const,unsigned int)" (?compare@?$char_traits@D@std@@SAHQBD0I@ Z) Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _memcpy в функции "public: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Assign_rv_contents_with_alloc_always _equal(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &&,struct std::integral_constant<bool,1>)" (?_Assign_rv_contents_with_alloc_always_ equal@?$basic_string@DU?$char_traits@D@s td@@V?$allocator@D@2@@std@@QAEX$$QAV12@U ?$integral_constant@_N$00@2@@Z) Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _memmove в функции "public: static char * __cdecl std::char_traits<char>::move(char * const,char const * const,unsigned int)" (?move@?$char_traits@D@std@@SAPADQADQBDI @Z) Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _strcpy в функции "char * __cdecl GetCString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?GetCString@@YAPADV?$basic_string@DU?$c har_traits@D@std@@V?$allocator@D@2@@std@ @@Z) Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _strlen в функции "int __cdecl Run(class std::basic_string_view<char,struct std::char_traits<char> >)" (?Run@@YAHV?$basic_string_view@DU?$char_ traits@D@std@@@std@@@Z) Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ ___std_exception_copy в функции "public: __thiscall std::exception::exception(class std::exception const &)" (??0exception@std@@QAE@ABV01@@Z) Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2001 неразрешенный внешний символ "___std_exception_copy" Debugger ...\Syringe\Debugger\MSVCRTD.lib(throw_b ad_alloc.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ ___std_exception_destroy в функции "public: virtual __thiscall std::exception::~exception(void)" (??1exception@std@@UAE@XZ) Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2001 неразрешенный внешний символ "___std_exception_destroy" Debugger ...\Syringe\Debugger\MSVCRTD.lib(throw_b ad_alloc.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp___CrtDbgReportW в функции "void * __cdecl std::_Allocate_manually_vector_aligned<s truct std::_Default_allocate_traits>(unsigned int)" (??$_Allocate_manually_vector_aligned@U_ Default_allocate_traits@std@@@std@@YAPAX I@Z) Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ __CxxThrowException@8 в функции __catch$??$_Uninitialized_move_al_unchec ked@PAV?$basic_string@DU?$char_traits@D@ std@@V?$allocator@D@2@@std@@PAV12@V?$all ocator@V?$basic_string@DU?$char_traits@D @std@@V?$allocator@D@2@@std@@@2@@std@@YA PAV?$basic_string@DU?$char_traits@D@std@ @V?$allocator@D@2@@0@PAV10@00AAV?$alloca tor@V?$basic_string@DU?$char_traits@D@st d@@V?$allocator@D@2@@std@@@0@U_General_p tr_iterator_tag@0@U_Unused_parameter@0@@ Z$0 Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2001 неразрешенный внешний символ "__CxxThrowException@8" Debugger ...\Syringe\Debugger\MSVCRTD.lib(throw_b ad_alloc.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ ___CxxFrameHandler3 в функции __unwindfunclet$??$?0ABV?$allocator@D@st d@@X@?$_String_alloc@U?$_String_base_typ es@DV?$allocator@D@std@@@std@@@std@@QAE@ ABV?$allocator@D@1@@Z$0 Debugger ...\Syringe\Debugger\Main.obj 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ __callnewh в функции "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) Debugger ...\Syringe\Debugger\MSVCRTD.lib(new_sca lar.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _malloc в функции "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) Debugger ...\Syringe\Debugger\MSVCRTD.lib(new_sca lar.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ __CrtDbgReport в функции __CRT_RTC_INIT Debugger ...\Syringe\Debugger\MSVCRTD.lib(_init_. obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ __CrtDbgReportW в функции __CRT_RTC_INITW Debugger ...\Syringe\Debugger\MSVCRTD.lib(_init_. obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ __free_dbg в функции "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) Debugger ...\Syringe\Debugger\MSVCRTD.lib(delete_ scalar.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _strcpy_s в функции "void __cdecl _RTC_StackFailure(void *,char const *)" (?_RTC_StackFailure@@YAXPAXPBD@Z) Debugger ...\Syringe\Debugger\MSVCRTD.lib(_error_ .obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _strcat_s в функции "void __cdecl _RTC_StackFailure(void *,char const *)" (?_RTC_StackFailure@@YAXPAXPBD@Z) Debugger ...\Syringe\Debugger\MSVCRTD.lib(_error_ .obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ ___stdio_common_vsprintf_s в функции __vsprintf_s_l Debugger ...\Syringe\Debugger\MSVCRTD.lib(_error_ .obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ __wmakepath_s в функции "int __cdecl GetPdbDllPathFromFilePath(wchar_t const *,wchar_t *,unsigned int)" (?GetPdbDllPathFromFilePath@@YAHPB_WPA_W I@Z) Debugger ...\Syringe\Debugger\MSVCRTD.lib(_pdblku p_.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ __wsplitpath_s в функции "int __cdecl GetPdbDllPathFromFilePath(wchar_t const *,wchar_t *,unsigned int)" (?GetPdbDllPathFromFilePath@@YAHPB_WPA_W I@Z) Debugger ...\Syringe\Debugger\MSVCRTD.lib(_pdblku p_.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ _wcscpy_s в функции "int __cdecl GetPdbDllPathFromFilePath(wchar_t const *,wchar_t *,unsigned int)" (?GetPdbDllPathFromFilePath@@YAHPB_WPA_W I@Z) Debugger ...\Syringe\Debugger\MSVCRTD.lib(_pdblku p_.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ ___vcrt_GetModuleFileNameW в функции "struct HINSTANCE__ * __cdecl GetPdbDll(void)" (?GetPdbDll@@YAPAUHINSTANCE__@@XZ) Debugger ...\Syringe\Debugger\MSVCRTD.lib(_pdblku p_.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ ___vcrt_LoadLibraryExW в функции "struct HINSTANCE__ * __cdecl GetPdbDll(void)" (?GetPdbDll@@YAPAUHINSTANCE__@@XZ) Debugger ...\Syringe\Debugger\MSVCRTD.lib(_pdblku p_.obj) 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ __except_handler4_common в функции __except_handler4 Debugger ...\Syringe\Debugger\MSVCRTD.lib(_chandl er4gs_.obj) 1
Ошибка LNK1120 неразрешенных внешних элементов: 27 Debugger ...\Debugger\Debug\Debugger.exe 1

Сам способ линкования я проверил на полупустом проекте, он сработал. А в данном случае не хочет и я ней пойму в чём дело. Подскажите пожалуйста. Заранее спасибо.

Добавлено через 22 минуты
P.S. пространства имён Log и Syringe стёрты.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.08.2018, 17:36
Ответы с готовыми решениями:

Ошибка при линковке
Доброго времени суток! Возникают ошибки на этапе линковки: Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ SHA256_Init...

VS 6.0 ошибка при линковке
Всё время с 6.0 при линковке выдаёт Linking... LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/Test.exe :...

Ошибка при линковке
Здравствуйте. Помогите пожалуйста с проблемой над которой бьюсь уже не один день. Все компиляторы выдают след ошибки Error 3 error...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.08.2018, 17:36
Помогаю со студенческими работами здесь

Ошибка LNK2019 при линковке - как это решать систематически?
Господа, я пишу на с++ в Visual Studio 2010 с использованием boost. ( &quot;В шахматы великий комбинатор играл второй раз в жизни&quot; ) ...

Не могу объявить массив внутри main - ошибка при линковке
Доброго времени суток! Я начинающий в С++. Использую gcc в Ubuntu 13.04 x64 bit. Прохожу сейчас массивы. Заметил одну странность....

Компилятся ли библиотеки при статической линковке, если я их не использую?
День всем добрый! Такой вопрос. К примеру, я подключил к проекту целую телегу хедеров, некоторые из которых я не использую. Если я...

Размер исполняемого файла при статической и динамической линковке
В общем, компилирую простой пример: int main() { } Компилирую со статической и динамической линковкой: g++ file.cpp -static -o static...

Ошибки underfined reference to parentClass::method и unerfined reference to vtable при линковке
При сборке компилятор выдает ошибки underfined reference to и unerfined reference to vtable. Есть базовый класс, два наследуемых от него и...


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

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

Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru