Fehler: lnk2019 mit C++, PCL & Cmake

Hier das Buildprotokoll habs einfach ma reinkopiert

Code:
Buildprotokoll     Erstellen wurde gestartet: Projekt: "PCLTest", Konfiguration: "Debug|Win32"

 Befehlszeilen     Die temporäre Datei "d:\Eclipse Projekte\PCLTest\build\PCLTest.dir\Debug\RSP00000C98406368.rsp" wird erstellt. Inhalt:
[
/Od /I "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\include\vtk-5.8" /I "C:\Program Files\Bearbeitung\PCL 1.5.1\include\pcl-1.5" /I "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Eigen\include" /I "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\include" /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "DISABLE_OPENNI" /D "EIGEN_USE_NEW_STDVECTOR" /D "EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET" /D "BOOST_ALL_NO_LIB" /D "CMAKE_INTDIR=\"Debug\"" /D "_MBCS" /FD /EHsc /RTC1 /MDd /Fo"PCLTest.dir\Debug\\" /Fd"D:\Eclipse Projekte\PCLTest\build\Debug/PCLTest.pdb" /W3 /c /Zi /TP "..\main.cpp"
]Erstellen der Befehlszeile "cl.exe @"d:\Eclipse Projekte\PCLTest\build\PCLTest.dir\Debug\RSP00000C98406368.rsp" /nologo /errorReport:prompt"Die temporäre Datei "d:\Eclipse Projekte\PCLTest\build\PCLTest.dir\Debug\RSP00000D98406368.rsp" wird erstellt. Inhalt:
[
/OUT:"D:\Eclipse Projekte\PCLTest\build\Debug\PCLTest.exe" /VERSION:0.0 /INCREMENTAL /LIBPATH:"C:\Program Files\Bearbeitung\PCL 1.5.1\lib\Debug" /LIBPATH:"C:\Program Files\Bearbeitung\PCL 1.5.1\lib" /MANIFEST /MANIFESTFILE:"PCLTest.dir\Debug\PCLTest.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"D:\Eclipse Projekte\PCLTest\build\Debug/PCLTest.pdb" /SUBSYSTEM:CONSOLE /DYNAMICBASE /NXCOMPAT /IMPLIB:"D:\Eclipse Projekte\PCLTest\build\Debug\PCLTest.lib"  /machine:X86 /debug kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_system-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_filesystem-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_thread-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_date_time-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_iostreams-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\lib\pcl_common_debug.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkCommon-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkRendering-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkHybrid-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\lib\pcl_io_debug.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_system-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_filesystem-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_thread-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_date_time-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_iostreams-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\lib\pcl_common_debug.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\lib\pcl_octree_debug.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_system-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_filesystem-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_thread-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_date_time-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\Boost\lib\libboost_iostreams-vc90-mt-gd-1_48.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\lib\pcl_common_debug.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\lib\pcl_io_debug.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\lib\pcl_octree_debug.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkRendering-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkGraphics-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkverdict-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkImaging-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkIO-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkFiltering-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkCommon-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkDICOMParser-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkNetCDF_cxx-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkmetaio-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtksys-gd.lib" ws2_32.lib comctl32.lib wsock32.lib "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtksqlite-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkpng-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtktiff-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkzlib-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkjpeg-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkexpat-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkftgl-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkfreetype-gd.lib" opengl32.lib "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkexoIIc-gd.lib" "C:\Program Files\Bearbeitung\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8\vtkNetCDF-gd.lib" vfw32.lib

".\PCLTest.dir\Debug\main.obj"

".\PCLTest.dir\Debug\PCLTest.exe.embed.manifest.res"
]Erstellen der Befehlszeile "link.exe @"d:\Eclipse Projekte\PCLTest\build\PCLTest.dir\Debug\RSP00000D98406368.rsp" /NOLOGO /ERRORREPORT:PROMPT" Ausgabefenster     Kompilieren...
main.cpp
c:\program files\bearbeitung\pcl 1.5.1\3rdparty\eigen\include\eigen\src/Geometry/OrthoMethods.h(94) : warning C4181: Qualifizierer wird auf Referenztyp angewendet; wird ignoriert
        C:\Program Files\Bearbeitung\PCL 1.5.1\include\pcl-1.5\pcl/common/distances.h(73): Siehe Verweis auf die Instanziierung der gerade kompilierten Funktions-template "Eigen::Matrix<_Scalar,_Rows,_Cols> Eigen::MatrixBase::cross3>(const Eigen::MatrixBase> &) const".
        with
        [
            _Scalar=float,
            _Rows=4,
            _Cols=1,
            Derived=Eigen::Matrix,
            BinaryOp=Eigen::internal::scalar_difference_op,
            Lhs=const Eigen::Matrix,
            Rhs=const Eigen::Matrix
        ]
c:\program files\bearbeitung\pcl 1.5.1\3rdparty\eigen\include\eigen\src/Geometry/OrthoMethods.h(46) : warning C4181: Qualifizierer wird auf Referenztyp angewendet; wird ignoriert
        C:\Program Files\Bearbeitung\PCL 1.5.1\include\pcl-1.5\pcl/common/impl/eigen.hpp(40): Siehe Verweis auf die Instanziierung der gerade kompilierten Funktions-template "Eigen::Matrix<_Scalar,_Rows,_Cols> Eigen::MatrixBase::cross(const Eigen::MatrixBase &) const".
        with
        [
            _Scalar=float,
            _Rows=3,
            _Cols=1,
            Derived=Eigen::Matrix
        ]

c:\program files\bearbeitung\pcl 1.5.1\3rdparty\eigen\include\eigen\src/Geometry/OrthoMethods.h(47) : warning C4181: Qualifizierer wird auf Referenztyp angewendet; wird ignoriert
Verknüpfen...
main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall pcl::PCDWriter::writeASCII(class std::basic_string,class std::allocator > const &,struct sensor_msgs::PointCloud2 const &,class Eigen::Matrix const &,class Eigen::Quaternion const &,int)" (?writeASCII@PCDWriter@pcl@@QAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUPointCloud2@sensor_msgs@@ABV?$Matrix@M$03$00$0A@$03$00@Eigen@@ABV?$Quaternion@M$0A@@8@H@Z)" in Funktion ""public: virtual int __thiscall pcl::PCDWriter::write(class std::basic_string,class std::allocator > const &,struct sensor_msgs::PointCloud2 const &,class Eigen::Matrix const &,class Eigen::Quaternion const &,bool)" (?write@PCDWriter@pcl@@UAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUPointCloud2@sensor_msgs@@ABV?$Matrix@M$03$00$0A@$03$00@Eigen@@ABV?$Quaternion@M$0A@@8@_N@Z)".
main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall pcl::PCDWriter::writeBinary(class std::basic_string,class std::allocator > const &,struct sensor_msgs::PointCloud2 const &,class Eigen::Matrix const &,class Eigen::Quaternion const &)" (?writeBinary@PCDWriter@pcl@@QAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUPointCloud2@sensor_msgs@@ABV?$Matrix@M$03$00$0A@$03$00@Eigen@@ABV?$Quaternion@M$0A@@8@@Z)" in Funktion ""public: virtual int __thiscall pcl::PCDWriter::write(class std::basic_string,class std::allocator > const &,struct sensor_msgs::PointCloud2 const &,class Eigen::Matrix const &,class Eigen::Quaternion const &,bool)" (?write@PCDWriter@pcl@@UAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUPointCloud2@sensor_msgs@@ABV?$Matrix@M$03$00$0A@$03$00@Eigen@@ABV?$Quaternion@M$0A@@8@_N@Z)".
main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""void __cdecl pcl::console::print(enum pcl::console::VERBOSITY_LEVEL,char const *,...)" (?print@console@pcl@@YAXW4VERBOSITY_LEVEL@12@PBDZZ)" in Funktion ""public: int __thiscall pcl::PCDWriter::writeASCII(class std::basic_string,class std::allocator > const &,class pcl::PointCloud const &,int)" (****$writeASCII@UPointXYZ@pcl@@@PCDWriter@pcl@@QAEHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$PointCloud@UPointXYZ@pcl@@@1@H@Z)".

D:\Eclipse Projekte\PCLTest\build\Debug\PCLTest.exe : fatal error LNK1120: 3 nicht aufgelöste externe Verweise.
 Ergebnisse     Das Buildprotokoll wurde unter "file://d:\Eclipse Projekte\PCLTest\build\PCLTest.dir\Debug\BuildLog.htm" gespeichert.
PCLTest - 4 Fehler, 3 Warnung(en)
 
Hab das Problem gelöst oder besser gesagt umgangen habs mit VS 2010 versucht und er hat jetzt nicht mehr denn fehler :)
Danke an dich deepthroat häts ohne dich wahrscheinlich viel später oder gar nicht mit ner anderen VS Version probiert.

Jetzt sagt er mir aber das das Projekt nicht gestartet werden könne weil er die ALL_DEBUG Datei nicht öffnen kann.
Und es gibt keine Fehlermeldung nur n paar Warnungen :(

Code:
Warnung	1	warning C4521: 'pcl::PointCloud<Eigen::MatrixXf>': Mehrere Kopierkonstruktoren angegeben	C:\Program Files\Bearbeitung\PCL 1.6\include\pcl-1.6\pcl\point_cloud.h	1021
Warnung	2	warning C4996: 'pcl::SHOT': USE SHOT352 FOR SHAPE AND SHOT1344 FOR SHAPE+COLOR INSTEAD	C:\Program Files\Bearbeitung\PCL 1.6\include\pcl-1.6\pcl\impl\point_types.hpp	1008
Warnung	3	warning C4996: 'pcl::SHOT': USE SHOT352 FOR SHAPE AND SHOT1344 FOR SHAPE+COLOR INSTEAD	C:\Program Files\Bearbeitung\PCL 1.6\include\pcl-1.6\pcl\impl\point_types.hpp	1009
Warnung	4	warning C4996: 'pcl::SHOT::rf': USE SHOT352 FOR SHAPE AND SHOT1344 FOR SHAPE+COLOR INSTEAD	C:\Program Files\Bearbeitung\PCL 1.6\include\pcl-1.6\pcl\impl\point_types.hpp	1012
Warnung	5	warning C4996: 'pcl::SHOT::descriptor': USE SHOT352 FOR SHAPE AND SHOT1344 FOR SHAPE+COLOR INSTEAD	C:\Program Files\Bearbeitung\PCL 1.6\include\pcl-1.6\pcl\impl\point_types.hpp	1013
Warnung	6	warning C4996: 'pcl::SHOT::descriptor': USE SHOT352 FOR SHAPE AND SHOT1344 FOR SHAPE+COLOR INSTEAD	C:\Program Files\Bearbeitung\PCL 1.6\include\pcl-1.6\pcl\impl\point_types.hpp	1014
Warnung	7	warning C4996: 'pcl::SHOT::descriptor': USE SHOT352 FOR SHAPE AND SHOT1344 FOR SHAPE+COLOR INSTEAD	C:\Program Files\Bearbeitung\PCL 1.6\include\pcl-1.6\pcl\impl\point_types.hpp	1014
Warnung	8	warning C4521: 'pcl::PointCloud<PointT>': Mehrere Kopierkonstruktoren angegeben	C:\Program Files\Bearbeitung\PCL 1.6\include\pcl-1.6\pcl\point_cloud.h	603
Warnung	9	warning C4305: 'specialization': Verkürzung von 'const unsigned int' in 'bool'	c:\program files\bearbeitung\pcl 1.6\3rdparty\eigen\include\eigen\src\Geometry\OrthoMethods.h	99
 
Fehlermeldung ist "Das Programm "C:\...\Debug\ALL_BUILD" kann nicht gestartet werden.
Das System kann die angegebene Datei nicht finden.

Und was ich getan hab ist das ich den PCL Installer für VS 2010 genutzt hab, nachdem ich die Installation für PCL VS 2008 deinstalliert hab. Dann Qt nachinstalliert und in VS 2010 in den Projekt-Eigenschaften eingetragen. Danach einfach Programm ausprobiert das wars auch schon.

Und die DLL sind im PATH.
 
Zuletzt bearbeitet:
Hallo,

hat sich denn dein CMake File groß geändert? Wenn ich mir das aus deinem Start-Post so angucke sollte doch das Executable "PCLTest" heissen und nicht ALL_BUILD?!

Hast du schonmal in den angegebenen Ordner "C:\...\Debug" geschaut was da für .exe Dateien liegen? Überprüf daraufhin mal deine Projekt-Einstellungen unter VS10, speziell die unter "Configuration Properties -> Debugging".

Gruß,
Wolf
 
Die CMake hat sich nicht geändert außer das ich
Code:
find_package(PCL 1.3 REQUIRED COMPONENTS common io)
durch
Code:
find_package(PCL 1.3 REQUIRED COMPONENTS)
ersetzt hab.

Im Debugordner ist die PCLTest.exe mit noch n paar anderen Debugdateien.
Und bei den Projekteinstellungen hab ich jetzt direkt keinen Fehler gefunden alles was mit dem Debuggen zu tun hat nutzt PCLTest und nicht ALL_BUILD.
Hab den Hacken beim Konfigurationsmanager für all_build noch reingemacht hat aber auch nicht sehr viel geholfen.
Wenn ichs jetzt normal Debugge bekomm ich die gleiche Fehlermeldung. Wenn ich abr jetzt die Projektmappe bereinige und dann erstellen mach bekomm ich folgenden Fehler.
Code:
Fehler	9	error LNK1168: "D:\Eclipse Projekte\PCLTest\build\Debug\PCLTest.exe" kann nicht zum Schreiben geöffnet werden.	D:\Eclipse Projekte\PCLTest\build\LINK
Und wenn ich nur die PCLTest.exe ausführ scheint sie das zu machen was sie machen soll es wird nämlich die testpcd.pcd datei erzeugt.

Alles recht seltsam wenn ich das mal sagen darf :(
 
Läuft deine Applikation eventuell irgendwie noch? Also deine PLCTest.exe, so dass die Datei gelockt ist und nicht vom VS10 gelöscht werden kann?

Wenn das Programm bei Ausführung über die Konsole genau das tut was es soll, würde ich immernoch darauf tippen, das irgendeine Einstellung in deinem Visual Studio Projekt nicht ganz stimmt.

Gruß,
Wolf
 
Hi.

ALL_BUILD ist ein CMake-eigenes Zielprojekt. Es läßt sich nicht starten, da dieses Projekt keine ausführbare Datei erzeugt. Es ist lediglich dazu da "alle" Unterprojekte in der richtigen Reihenfolge zu erstellen (und CMake ggf. zum Regenerieren aufzurufen).

Das Projekt mit der ausführbaren Datei heißt natürlich so wie in der CMakelist.txt angegeben.

Man muß das dann im Studio manuell als "Startprojekt" festlegen damit es dann automatisch gestartet wird wenn man auf "Debug" oder "Run" klickt.
 
Zurück