C ++ LNK2019 Ошибка, попыталась изменить имя функции и реализацию, но ошибка всегда следует [дублировать]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C ++ LNK2019 Ошибка, попыталась изменить имя функции и реализацию, но ошибка всегда следует [дублировать]

Сообщение Anonymous »

Hi Heeks в сообществе StackOverflow, < /p>
Я новенький в C ++ Программирование и выбор проекта с открытым исходным кодом с C ++. < /p>
Инструменты, которые я использую: < /p>

vscode < /li>
vs 2019 инструменты. /> vcpkg < /li>
msvc < /li>
< /ol>
Команды сборки, которые я выполняю: < /p>

Код: Выделить всё

cmake .. -DSHIPPING=ON -G "Visual Studio 16 2019" -DCMAKE_TOOLCHAIN_FILE="D:\Program Files\vcpkg\scripts\buildsystems\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-windows
< /code>
cmake --build . --config=Release
< /code>
During the building process, I met  this error:
app.obj : error LNK2019: unresolved external symbol "private: unsigned \__int64 \__cdecl App::EstimatePlySizeMB(void)" (?EstimatePlySizeMB@App@@AEAA_KXZ)
referenced in function "private: void \__cdecl App::PreloadGaussianClouds(void)" (?PreloadGaussianClouds@App@@AEAAXXZ)
D:\\td-project\\3d-player\\build\\Release\\3d-player-refined.exe : fatal error LNK1120: 1 unresolved externals
< /code>
I checked the EstimatePlySizeMB
подпись между app.h и app.cpp и я уверен, что оба идентичны. Кроме того, больше нет функций или файлов, имеющих одинаковое имя.

Код: Выделить всё

// app.cpp
size_t App::EstimatePlySizeMB()
{
std::ifstream file(this->plyFiles[0], std::ios::binary | std::ios::ate);
if (!file.is_open())
{
return 200;
}
size_t sizeBytes = static_cast(file.tellg());
return sizeBytes / (1024 * 1024);
}
< /code>
Here is where I call this function:
// app.cpp
void App::PreloadGaussianClouds()
{
if (this->plyFiles.empty())
{
return;
}

size_t singlePlySizeMB = this->EstimatePlySizeMB();
< /code>
At the beginning, I guessed maybe there was something wrong in the implementation of this function. So, instead, I rewrote this function, just like:
// app.cpp
size_t App::EstimatePlySizeMB()
{
return 200;
}
< /code>
But surprisingly, after I rewrote this function as above, I deleted the build directory and went rebuild. Still, the same error took place.
In addition, I tried to rename this function, App::EstimatePlySizeMB
-> app :: rename4try . Тем не менее, возникла та же самая ошибка LNK2019. Процесс сборки был успешным, например: < /p>
// app.h
class App
{
//... other codes

private:
size_t EstimatePlySizeMB()
{
std::ifstream file(this->plyFiles[0], std::ios::binary | std::ios::ate);
if (!file.is_open())
{
return 200;
}
size_t sizeBytes = static_cast(file.tellg());
return sizeBytes / (1024 * 1024);
}

// other codes

}
< /code>
Any recommandation and comment is highly appreciated. I have been stuck here for a very long time. Thanks in advance.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ntation-bu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»