Helal Uddin Mullah Ответов: 2

Как решить проблему неразрешенного внешнего символа в программировании opencv C++?


Я столкнулся с ошибкой, упомянутой как: ошибка LNK2001 "неразрешенный внешний символ' void_cdecl function1 (....) при написании программы на платформе opencv-visual studio с использованием языка C++. В function1.cpp файл-это функция, включенная в качестве заголовочного файла, поскольку она написана как отдельная программа вне основной программы. На .cpp файл в эта функция вызывается внутри другой функции, которая "ничтоже функции function2 (...)", которая определяется, в основном разделе оригинальная программа.
Грубая структура кода выглядит следующим образом:


#включить"function1.hpp"
#include<iostream>
...
void function2(.....)
{
функция 1(....);
}

тап_п()
{
int a, b, c;
..
...
функция 2(....);
..
возвращает 0;
}


Пожалуйста, помогите понять и решить, почему "void function1 (..)" отображается как неразрешенный внешний символ, хотя я сохранил function1.cpp в том же каталоге основной программы.

Что я уже пробовал:

Попытался написать define function1 (...) внутри программы, чтобы она не была связана.

2 Ответов

Рейтинг:
4

Jochen Arndt

Цитата:
В function1.cpp файл-это функция, включенная в качестве заголовочного файла, поскольку она написана как отдельная программа вне основной программы.
При создании приложений на C/C++ (помимо запуска других исполняемых файлов) не существует такой вещи, как "отдельная программа".

Вы должны скомпилировать function1.cpp файл тоже и связать созданный объектный файл с другими из вашего приложения. С помощью Visual Studio просто добавьте файл в свой проект (Project-Add existing).

Обратите внимание также, что исходные файлы (*.СРР) не должны быть включены. Это плохая практика и может привести к дополнительным проблемам.


Helal Uddin Mullah

Большое вам спасибо @Sir Arndt за ваши важные предложения.
Теперь моя проблема решена, если я поступаю согласно вам. Надеюсь на дополнительную помощь в будущем.

Jochen Arndt

Добро пожаловать и спасибо, что приняли мое решение.

Рейтинг:
2

Patrice T

Попробуйте заменить

#include"function1.hpp"

с
#include"function1.cpp"