Линковщик выдает ошибку:
Код:
Severity Code Description Project File Line Suppression State
Error LNK2005 "class std::vector<unsigned char,class std::allocator<unsigned char> > __cdecl Read_file_binary_(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?Read_file_binary_@@YA?AV?$vector@EV?$allocator@E@std@@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z) already defined in segment.obj segment
Упомянутая переменная
Read_file_binary_Определена в header file:
Код:
std::vector<uint8_t> Read_file_binary_(const std::string & pathToFile)
{
std::ifstream file(pathToFile, std::ios::binary);
std::vector<uint8_t> fileBufferBytes;
if (file.is_open())
{
file.seekg(0, std::ios::end);
size_t sizeBytes = file.tellg();
file.seekg(0, std::ios::beg);
fileBufferBytes.resize(sizeBytes);
if (file.read((char*)fileBufferBytes.data(), sizeBytes)) return fileBufferBytes;
}
else throw std::runtime_error("could not open binary ifstream to path " + pathToFile);
return fileBufferBytes;
}
И используется всего раз:
Код:
if (preload_into_memory)
{
byte_buffer = Read_file_binary_(filepath);
file_stream.reset(new memory_stream((char*)byte_buffer.data(), byte_buffer.size()));
}
Судя по хелпу имя якобы упоминается два раза. Я как бы изменял несколько раз на всякий случай это имя, но с тем же успехом.
Кроме того. В другом проекте, правда более простом, никаких накладок не было.
Помогите люди добрые разобраться.
-- Вт июл 28, 2020 19:58:40 --Примерно понял. Если кому интересно. Переставил опреределение читающей функии
std::vector<uint8_t> Read_file_binary_(const std::string & pathToFile){.....}из хедера в корневой файл (main.cpp).
А так как мжду инклюдом
#include "tinyply.h" и читающим файлы фрагментом теперь появляется магическая тройка
extern "C" { FILE _iob[3] = {__acrt_iob_func(0), __acrt_iob_func(0), __acrt_iob_func(0)}; }То с чтением файлов все теперь в порядке.