CMAKE-cross-kompilieren der libraries werden nicht gefunden

Ich habe seltsame Probleme mit meinen cmake-cross-compiler-Projekte.

Meine eigenen Bibliotheken gefunden, aber nicht die (system -) Bibliotheken aus meiner toolchain.

Zuvor war ich mit KDevelop auf debian squeeze-Maschine.
jetzt auf meinem neuen Rechner mit debian wheezy konfigurieren, schlägt fehl.
Es nicht die system-Bibliotheken wie m oder pthread.

Auf meiner alten Maschine die folgenden arbeiten war perfekt, aber ich erinnere mich nicht, dass ich etwas besonderes um diese Arbeit zu machen.

Hier ist einer meiner CMakeLists.txt Dateien

cmake_minimum_required(VERSION 2.8)
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 2.6.36.4)
SET(CMAKE_C_COMPILER arm-angstrom-linux-gnueabi-gcc)
SET(CMAKE_CXX_COMPILER arm-angstrom-linux-gnueabi-g++)
include_directories(../include
  ../../../sample/include)

project(testmain)

add_executable(testmain
   some_c-source-file.c)

set(CMAKE_LIBRARY_PATH ../lib/arm-26/lib
  ../../../sample/lib/arm-26/lib)
find_library(LIBS_TEST NAMES akku)
find_library(LIBS_M NAMES m)
find_library(LIBS_PTHREAD NAMES pthread )
target_link_libraries(akkumain
  ${LIBS_TEST}
  ${LIBS_M}
  ${LIBS_PTHREAD})

set(CMAKE_C_FLAGS "-Wall -Werror")
set(CMAKE_C_FLAGS_DEBUG "-g3 -O2 -rdynamic")
set(CMAKE_C_FLAGS_RELEASE "-g0 -O0")
set(CMAKE_CXX_FLAGS "-Wall -Werror")
set(CMAKE_CXX_FLAGS_DEBUG "-g3 -O2 -rdynamic")
set(CMAKE_CXX_FLAGS_RELEASE "-g0 -O0")

Dies ist die Meldung, wenn Sie versuchen, kompilieren Sie mit KDevelop: (, mich zu wiederholen: es funktioniert auf meinem alten Rechner)

/home/user/testmain/build> /usr/bin/cmake -DCMAKE_BUILD_TYPE=Debug /home/user/testmain/
-- The C compiler identification is GNU 4.3.3
-- The CXX compiler identification is GNU 4.3.3
-- Check for working C compiler: /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc
-- Check for working C compiler: /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++
-- Check for working CXX compiler: /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
LIBS_M
    linked by target "akkumain" in directory /home/user/testmain
LIBS_PTHREAD
    linked by target "akkumain" in directory /home/user/testmain

So LIBS_TEST gefunden wird. Aber nicht libm oder libpthread.
Ich versuchte dies mit verschiedenen Projekten: Alle meine Bibliotheken gefunden werden, aber keiner von den "system" - Bibliotheken.

Ich schon verschiedene Sachen ausprobiert wie

set(CMAKE_FIND_LIBRARY_PREFIXES lib )
set(CMAKE_FIND_LIBRARY_SUFFIXES .a )

und einige weitere Dinge, die ich mich nicht erinnern.

Das einzige was FUNKTIONIERT ist, wenn ich geben Sie das Verzeichnis manuell:

find_library(ASTLIBS_M NAMES m PATHS /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/lib)

Nachdem Sie diese auf meine CMakeLists.txt der Bibliothek gefunden, und ich kann mein Projekt kompilieren ohne Fehler.

ABER: Das ist nicht das, was ich will, weil ich eine VIEL von Projekten und viele Bibliotheken, und ich will nicht Bearbeiten, alle meine CMakeLists.txt... 🙁

Weiß jemand, was aus meiner alten Maschine finden, die system-libs, ohne Angabe irgendetwas besonderes in meinem IDE/CMake-Dateien?

Bearbeiten:
Mir gerade aufgefallen ist, für eine meiner ausführbare Dateien, die auf Linker Bühne wirft es einige Fehler, die es nicht finden können, einige Symbole aus der glibc - scheint, es ist etwas falsch mit meinem debian-wheezy-system. - Ich hoffe, dass ich es herausfinden...

Edit:

Vielleicht sollte ich geben eine kurze Zusammenfassung: Mein code kompiliert auch, aber alle Bibliotheken aus meiner toolchain nicht gefunden, aber wenn ich den Pfad zu den libs von meiner toolchain manuell kompiliert, aber scheitert an linker Bühne.

immer noch nicht mein problem gelöst. Es ist einfach nicht möglich, eine Bibliothek von der toolchain. Sie ar-Satz zu NOTFOUND. - Ich habe keine Ahnung.. 🙁

InformationsquelleAutor Meister Schnitzel | 2013-07-18

Schreibe einen Kommentar