pcl::IterativeClosestPoint<pcl::PointXYZ, pcl::PointXYZ> icp;구문에서 나오는 오류로


오류 로그는 아래와 같다.

1>OpenNICapture.obj : error LNK2019: "public: __cdecl pcl::search::KdTree<struct pcl::PointXYZ>::KdTree<struct pcl::PointXYZ>(bool)" (??0?$KdTree@UPointXYZ@pcl@@@search@pcl@@QEAA@_N@Z) 외부 기호(참조 위치: "public: __cdecl pcl::registration::CorrespondenceEstimationBase<struct pcl::PointXYZ,struct pcl::PointXYZ,float>::CorrespondenceEstimationBase<struct pcl::PointXYZ,struct pcl::PointXYZ,float>(void)" (??0?$CorrespondenceEstimationBase@UPointXYZ@pcl@@U12@M@registration@pcl@@QEAA@XZ) 함수)에서 확인하지 못했습니다.

1>OpenNICapture.obj : error LNK2019: "public: void __cdecl pcl::search::KdTree<struct pcl::PointXYZ>::setPointRepresentation(class boost::shared_ptr<class pcl::PointRepresentation<struct pcl::PointXYZ> const > const &)" (?setPointRepresentation@?$KdTree@UPointXYZ@pcl@@@search@pcl@@QEAAXAEBV?$shared_ptr@$$CBV?$PointRepresentation@UPointXYZ@pcl@@@pcl@@@boost@@@Z) 외부 기호(참조 위치: "public: void __cdecl pcl::registration::CorrespondenceEstimationBase<struct pcl::PointXYZ,struct pcl::PointXYZ,float>::setInputTarget(class boost::shared_ptr<class pcl::PointCloud<struct pcl::PointXYZ> const > const &)" (?setInputTarget@?$CorrespondenceEstimationBase@UPointXYZ@pcl@@U12@M@registration@pcl@@QEAAXAEBV?$shared_ptr@$$CBV?$PointCloud@UPointXYZ@pcl@@@pcl@@@boost@@@Z) 함수)에서 확인하지 못했습니다.

1>D:\Projects\uok\3d\src\UokPrj\x64\Release\UokPrj.exe : fatal error LNK1120: 2개의 확인할 수 없는 외부 참조입니다.


프로젝트 환경설정 C++ > 일반 > 추가포함디렉토리에 경로 설정 후 에러 제거

D:/Programs/pcl/thirds/Boost/include;D:/Programs/pcl/thirds/Eigen/include;D:/Programs/pcl/thirds/flann/include;D:/Programs/pcl/thirds/OpenNI/Include;D:/Programs/pcl/srcnew/recognition/include/pcl/recognition/3rdparty;D:/Programs/pcl/binNewExample/include;D:/Programs/pcl/srcnew/common/include;D:/Programs/pcl/srcnew/io/include;D:/Programs/pcl/srcnew/filters/include;D:/Programs/pcl/srcnew/sample_consensus/include;D:/Programs/pcl/srcnew/segmentation/include;D:/Programs/pcl/srcnew/search/include;D:/Programs/pcl/srcnew/kdtree/include;D:/Programs/pcl/srcnew/features/include;D:/Programs/pcl/srcnew/surface/include;D:/Programs/pcl/srcnew/octree/include;D:/Programs/pcl/srcnew/registration/include;D:/Programs/pcl/srcnew/recognition/include;D:/Programs/pcl/srcnew/geometry/include;D:/Programs/pcl/srcnew/keypoints/include;D:/Programs/pcl/srcnew/ml/include;D:/Programs/pcl/thirds/VTK 5.8.0/include/vtk-5.8;D:/Programs/pcl/srcnew/tools/include;D:/Programs/pcl/srcnew/visualization/include;%(AdditionalIncludeDirectories)

저작자 표시 비영리 변경 금지
신고

pcl 1.7.1 lnk1112

from Develop/PCL 2014.03.28 13:44

pcl 1.7.1 win7 64bit


최초 git 에서 zip 형태로 다운 받은 소스 컴파일은 PCL_????  Template 오류 출력 


이후 git으로 최신 소스 받아서 컴파일은(1.6 3rd 라이브러리들 각자 폴더에 얹고 실행 후 성공)


pcl include 파일들은 웹에 떠도는 1.7.1 바이너리 파일들 중에서 있던 것 올림


이후 

lnk1112 x86, x64 Conflict로 이주간 고생


컴퓨터 새로 깔고 디펜던시로 보고(디펜던시 문제 있는지 msi_??? 파일부터 대부분 파일 오류 출력) 하지만 디펜던시 체크할 문제는 아니었으며 vs 문제였던 것으로 판단


1.7.1 깔고 cmake로 컴파일 폴더 설정 및 include  경로로 헤더파일 복사 및 컴파일 성공


pclprj LNK1112 X86 X64 꼬였다고 출력


SYSTEM32 폴더 최근 파일 삭제 시작 - 오류 그래로 MD 모드에서 몇가지 명령어로 권한 이양 후 수정)

CL 명령어로 컴파일러 버젼 체크 - 상관없었을듯

Program Files (x86) 에 vs 가 깔리면 32비트라는 이상한 블로그 발견 - 상관없음

프로젝트 새로 생성해서 먼저 x64 설정 후 하나씩 복사했더니 정상 작동

결론 LNK1112는 내 경우는 VS 오류였으며 그 원인은 새로한 프젝도 마찬가지엿지만 build 환경을 win32에서 복사였다 추측.






저작자 표시 비영리 변경 금지
신고


iocp1-2000-oio017.doc


iocp2-2512-oio017.doc


iocp3-2-oio017.doc


iocp3-3618-oio017.doc


iocp4-8995-oio017.doc


iocpqueueappendix-oio017.zip



IOCP 활용한 공개 라이브러리

https://askldjd.wordpress.com/page/4/

저작자 표시 비영리 변경 금지
신고

티스토리 툴바