Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
10 / 10 / 6
Регистрация: 24.05.2013
Сообщений: 350
1

Ошибка error LNK2019 & LNK1120 и md5()

26.03.2015, 02:09. Показов 645. Ответов 4
Метки нет (Все метки)

Добавил поддержку md5(), код с сайта http://www.zedwood.com/article/cpp-md5-function
Пробую вставить в код и получаю ошибку при линковке.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <sys/types.h>
#include <direct.h>
#include <string>
#include <windows.h>
#include <conio.h>
#include "../include/md5/md5.h"
using namespace std;
 
void main()
{
char string_arg[64] = "hello ";
char md5str[64] = "world";
strcat(string_arg, md5(string(md5str)).c_str());
printf("string_arg: %s\n", string_arg);
}
Ошибка:
Код
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl md5(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?md5@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@Z) в функции _main
1>..\main.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
Функция md5():
Код
std::string md5(const std::string str)
{
    MD5 md5 = MD5(str);
 
    return md5.hexdigest();
}
Функция strcat():
Код
char * strcat( char * destptr, const char * srcptr );
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2015, 02:09
Ответы с готовыми решениями:

Error LNK1120, error LNK2019, error LNK2028, queue
// свойство класса Parser queue&lt;elem*&gt;* postfix = new queue&lt;elem*&gt;; // строка, из-за...

Error LNK2019 и LNK1120
Форумчане, помогите кто чем может. изучать язык только начал, поэтому куча вопросов и ошибок, а...

Error LNK2019 и fatal error LNK1120
Копаюсь в гугле уже часа 2. Не понимаю, в чем проблема. Вроде нигде ошибок в коде нету, но выдает:...

Error LNK2028, LNK2019, LNK1120: 2 неразрешенных внешних элементов
Всем привет. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &quot;conio.h&quot;...

4
265 / 165 / 56
Регистрация: 25.02.2015
Сообщений: 435
26.03.2015, 02:12 2
в каком cpp файле у вас реализация ваше md5 функции? этот файл к сборке в проекте подключен?
если нет - то дело в этом. он просто не компилялся и линкер не может найти то, что ему нужно.
0
10 / 10 / 6
Регистрация: 24.05.2013
Сообщений: 350
26.03.2015, 02:22  [ТС] 3
Спасибо, помогло, а без подключения в проект ошибку можно исправить? Например в настройках указать папку инклуда и md5 инклудить вот так #include <md5/md5.h>
Если да то как называется строка в которую пути до папок инклуда добавлять?
0
265 / 165 / 56
Регистрация: 25.02.2015
Сообщений: 435
26.03.2015, 02:34 4
дело не в инклудах. в инклудах у вас объявления функций. и раз дело дошло до линкера, то все корректно скомпилилось. далее из скомпиленных файлов линкер собирает исполняемый бинарь. так вот этот линкер ходит по скомпиленным объектным файлам и собирает ссылки на функции в один файл. и вот он видит что ссылка на функцию md5 есть, а объектного кода нет. вот он и ругается. чтобы он появился - надо чтобы спп файл с реализацией этой вашей md5 функцией участвовал в сборке. второй вариант - делать ее inline и реализовать прямо в h файле, но это плохой ход.

Добавлено через 2 минуты
как узнать, учавствует файл или нет: берете этот ваш cпп файл с реализацией md5 функции и пишите в него заведомо некомпилируемую хрень. если получаете ошибку компиляции - значит участвует в сборке, если же доходит до ошибок линковки - значит этот файл не компилировался даже.
2
10 / 10 / 6
Регистрация: 24.05.2013
Сообщений: 350
26.03.2015, 02:39  [ТС] 5
Спасибо, буду знать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2015, 02:39

Error LNK1120, Error LNK2019
Здравствуйте . У меня проблема с кодом . #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include...

В чём ошибка? fatal error LNK1120
Добрый вечер) Вот код, состоящий из класса(отдельного файла) и главной функции: #pragma once ...

Ошибка-----fatal error LNK1120-- Где неправильно?
Поскажите где ошибка? #include&lt;iostream&gt; using namespace std; int main() { for(;;)

Ошибка 3 error LNK1120: неразрешенных внешних элементов: 2
Добрый день. Возникла такая проблема. При компиляции показывает 3 ошибки. Ошибка 1 error...


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

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

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