+1 Punkt
65 Aufrufe

Hallo

ich möchte ein Projekt erstellen

Im Projektordner lege ich eine "build.sh" ab und lege ein Verzeichnis "src" an, in dem meine ".cpp" liegt.

Im Projektordner als auch in "src" erstelle ich eine CMakeLists.txt

Die Dateien sehen wie folgt aus:

build.sh

ROOTDIR=`pwd`
CONFIGS="release"

    BUILDFOLDER=$ROOTDIR/build/$CONFIG
    DISTFOLDER=$ROOTDIR/dist/$CONFIG

    mkdir -p $BUILDFOLDER $DISTFOLDER   

    cd $BUILDFOLDER

    cmake -DCMAKE_BUILD_TYPE=$CONFIG $ROOTDIR || exit 1

    make
    make install
die CMakeLists.txt im Projektordner:

project (pc)

cmake_minimum_required(VERSION 2.8)

set(INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dist/${CMAKE_BUILD_TYPE}/bin/")

find_package(PCL 1.2 REQUIRED)
find_package(Eigen3 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

add_compile_options(-Wall -Wextra)

add_subdirectory(src)
die CMakeLists.txt in "src"

add_executable(${PROJECT_NAME} "${CMAKE_CURRENT_SOURCE_DIR}/main.cpp")
target_link_libraries (pc "${PCL_LIBRARIES}" Eigen3::Eigen3)
install(TARGETS ${PROJECT_NAME} DESTINATION ${INSTALL_DIR})

Also ich möchte einfach ein Geordnetes Projekt erstellen und die PCL Library benutzen.

Bei einem Beispielprogramm von der PLC war folgende CMakeLists.txt, die ich wie man sieht vom Prinzip in meine Dateien übernommen hab:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)

project(bspline_fitting)

find_package(PCL 1.7 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

add_executable (bspline_fitting bspline_fitting.cpp)
target_link_libraries (bspline_fitting ${PCL_LIBRARIES})

jedoch findet er die Library nicht. 

Hier die letzten Zeilen von vielen bei der Ausgabe:

/usr/bin/ld: cannot find -loptimized
/usr/bin/ld: cannot find -ldebug
/usr/bin/ld: cannot find -loptimized
/usr/bin/ld: cannot find -ldebug
/usr/bin/ld: cannot find -loptimized
/usr/bin/ld: cannot find -ldebug
collect2: error: ld returned 1 exit status
src/CMakeFiles/pc.dir/build.make:383: die Regel für Ziel „src/pc“ scheiterte
make[2]: *** [src/pc] Fehler 1
CMakeFiles/Makefile2:85: die Regel für Ziel „src/CMakeFiles/pc.dir/all“ scheiterte
make[1]: *** [src/CMakeFiles/pc.dir/all] Fehler 2
Makefile:127: die Regel für Ziel „all“ scheiterte
make: *** [all] Fehler 2


Kann mir einer helfen,

wie binde ich Libraries ein?

Wie gebe ich noch Argumente für den Compiler/Linker mit, das er z.B. -std=c++11 benutzen soll.

Oder wenn mein Ausführen des Programms

LD_LIBRARY_PATH=/path/:$LD_LIBRARY_PATH ./programm  gebraucht wird, kann man das auch mit CMake verarbeiten, sodass man das nicht ständig beim Ausführen eintippen muss ?

Gefragt von

keine Idee ?

selbst gelöst, kann geschlossen werden

Wie lautet die Lösung? Dies ist wichtig, damit anderen mit demselben Problem weitergeholfen wird.

Bitte logge dich ein oder registriere dich, um die Frage zu beantworten.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...