LNK2005, ошибка компоновщика «уже определенная ошибка» в MSVC2010C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 LNK2005, ошибка компоновщика «уже определенная ошибка» в MSVC2010

Сообщение Anonymous »

Я пытаюсь реализовать тестовый проект, используя библиотеку облаков точек и OpenCV, с несколькими файлами. Когда я пытаюсь скомпилировать, я получаю сообщение «уже определенная ошибка». Вероятно, я делаю что-то глупое, чего по какой-то причине не могу осознать - я опробовал пару решений, найденных здесь, ни одно из них не помогло в моем случае.

Что у меня есть:

Файл libs.h, в который я загружаю файлы lib (в свойствах проекта я настраиваю только пути .lib и загружаю библиотеки "по рука", как и заголовки):

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

#pragma once

#ifndef PCLTEST_LIBS
#define PCLTEST_LIBS

#ifdef _DEBUG
#pragma comment(lib, "pcl_apps-gd.lib")
#pragma comment(lib, "pcl_common-gd.lib")
// a bunch of other debug libs
#else
// the release libs
#endif
#endif
Основной файл, из которого я практически удалил все на этом этапе для отладки:

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

// load the libs
#ifndef PCLTEST_LIBS
#include "libs.h"
#endif

// pcltest includes
// if only this first one is #included, everything is OK
#include "opencvOperations.h"
// #including this one causes the error
#include "files.h"
// these ones are not working also
//#include "cloudOperations.h"
//#include "visualize.h"

// c++ headers
#include 
#include 
//#include 
//#include 

void writeInfo()
{
// some std::cout calls
}

int main( int argc, char* argv[] )
{
writeInfo();
// this function is in opencvOperations.h and works OK
pcltest::openLena();
}
Затем я получаю несколько сообщений об ошибках в моем main.obj о том, что некоторые символы (связанные с PCL) уже определены в files.obj. Я использую вызовы, связанные с PCL, как в opencvOperations, так и в файлах, первый из них в порядке, второй не работает.

Изменить:
Чтобы добавить больше деталей, мой заголовок files.h:

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

#pragma once

#ifndef PCLTEST_FILES
#define PCLTEST_FILES

// pcl headers
#ifndef PCL_COMMON_H_
#include
#endif
#ifndef PCL_IO_FILE_IO_H_
#include 
#endif
#ifndef PCL_IO_PCD_IO_H_
#include 
#endif
#ifndef PCL_IO_PLY_IO_H_
#include 
#endif
// boost headers
#ifndef BOOST_FILESYSTEM_OPERATIONSX_HPP
#include 
#endif

#endif

namespace pcltest
{
// function to open PCL or binary PLY files
pcl::PointCloud::Ptr openCloud(std::string filename);

// function to save the point cloud to PCD format
void saveCloud();
}
До разделения кода на отдельные файлы все работало хорошо (с теми же настройками проекта).

< Strong>Edit2:

Я нашел источник проблемы,

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

#include
вызывает это. На данный момент я избавился от всего, что связано с PLY, и все работает нормально. Я посмотрю на это позже, возможно, это проблема конкретной библиотеки PCL. Мне все еще странно, почему этот вызов вызывает ошибку компоновщика в другом файле, где я даже не использую функции/переменные, связанные с PLY.


Подробнее здесь: https://stackoverflow.com/questions/834 ... n-msvc2010
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Конфликты символов (ошибка LNK2005 frexp уже определена в libmmt.lib(frexp_iface_c99.obj)) с компилятором Intel icx внут
    Anonymous » » в форуме C++
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Ошибка LNK2005: _DllMain@12 уже определен в MSVCRT.lib
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Решение «Ошибка lnk2005: ... уже определено *.obj» из внешнего класса?
    Anonymous » » в форуме C++
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • Решение «Ошибка lnk2005: ... уже определено *.obj» из внешнего класса? [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • Как найти источник явно ошибочного LNK2005 (символ уже определен)?
    Anonymous » » в форуме C++
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

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