Определите fun в файле hpp и вызовите его в другом файле cpp, но потерпите неудачу и поднимите ошибку множественного определения
Я определяю print4x4Matrix в PointCloudProcess.ГЭС файл выглядит следующим образом:
//print 4*4 matrix void print4x4Matrix(const Eigen::Matrix4d & matrix) { printf("Rotation matrix :\n"); printf(" | %6.3f %6.3f %6.3f | \n", matrix(0, 0), matrix(0, 1), matrix(0, 2)); printf("R = | %6.3f %6.3f %6.3f | \n", matrix(1, 0), matrix(1, 1), matrix(1, 2)); printf(" | %6.3f %6.3f %6.3f | \n", matrix(2, 0), matrix(2, 1), matrix(2, 2)); printf("Translation vector :\n"); printf("t = < %6.3f, %6.3f, %6.3f >\n\n", matrix(0, 3), matrix(1, 3), matrix(2, 3)); return; }
в main.cpp файл включите этот файл hpp и вызовите print4x4matrix fun но поднимите ошибку следующим образом:
错误 2 ошибка LNK2005: "Void и как __cdecl print4x4Matrix(класс Эйген::Матрица&ЛТ;двойной,4,4,0,4,4&ГТ; строительства &усилителя;)" (?print4x4Matrix@@YAXAEBV?$Матрица@Н 03$$03$0А@03$03$@Эйген@@@Z) в 已经在 correspondence_grouping.program параметр obj 中定义 D:\vs13 \experiment\registration\CorrespondenceGroupingModified9-14\CorrespondenceGroupingModified9-14\CorrespondenceGroupingModified\PointCloudProcess.параметр obj CorrespondenceGroupingModified
Error 3 ошибка lnk1169 :一一的的号号 D:\vs13 program\experiment\registration\CorrespondenceGroupingModified9-14\CorrespondenceGroupingModified9-14\x64\Debug\CorrespondenceGroupingModified.exe 1 1 CorrespondenceGroupingModified
есть и некоторые другие забавные определения в PointCloudProcess.ГЭС файл(как показано ниже), но они не поднимают ошибку.
template <class PointT> bool pointCloudICP(pcl::PointCloud<PointT> PointSource, pcl::PointCloud<PointT> PointTarget, pcl::PointCloud<PointT> &outPointCloud) { //... }
в чем проблема ? жду вашего ответа, Спасибо!
Что я уже пробовал:
когда я изменить print4x4Matrix удовольствие определиться с "встроенные" ошибки исчезают!