Registered Member
|
Hallo,
ich habe openSuSE 12.1 (64bit) mit kDevelop 4.2.3 und taglib-devel 1.7. Auszug aus dem source code #include <taglib/tag.h> #include <taglib/fileref.h> ... TagLib::FileRef ("Latex Solar Beef.mp3"); Dann bekomme ich beim linken diese Fehlermeldung: /home/developer/projects/mcm/build> make Scanning dependencies of target mcm [ 33%] Building CXX object CMakeFiles/mcm.dir/mcm.cpp.o Linking CXX executable mcm CMakeFiles/mcm.dir/mcm.cpp.o: In function `mcm::startMerge()': mcm.cpp:(.text+0x1521): undefined reference to `TagLib::FileRef::FileRef(char const*, bool, TagLib::AudioProperties::ReadStyle)' mcm.cpp:(.text+0x1529): undefined reference to `TagLib::FileRef::~FileRef()' CMakeFiles/mcm.dir/mcm.cpp.o: In function `mcm::qt_metacall(QMetaObject::Call, int, void**)': mcm.cpp:(.text+0x173a): undefined reference to `TagLib::FileRef::FileRef(char const*, bool, TagLib::AudioProperties::ReadStyle)' mcm.cpp:(.text+0x1742): undefined reference to `TagLib::FileRef::~FileRef()' CMakeFiles/mcm.dir/mcm.cpp.o: In function `mcm::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)': mcm.cpp:(.text+0x1801): undefined reference to `TagLib::FileRef::FileRef(char const*, bool, TagLib::AudioProperties::ReadStyle)' mcm.cpp:(.text+0x1809): undefined reference to `TagLib::FileRef::~FileRef()' collect2: ld returned 1 exit status make[2]: *** [mcm] Error 1 make[1]: *** [CMakeFiles/mcm.dir/all] Error 2 make: *** [all] Error 2 *** Fehlgeschlagen *** Wie binde ich denn die Lib richtig ein, das das kompilieren auch klappt ? Danke
Last edited by ds2k5 on Thu Mar 01, 2012 3:41 pm, edited 1 time in total.
|
Manager
|
Bist du sicher, dass diese lib so heisst und nicht eher libtag*?
Running Kubuntu 22.10 with Plasma 5.26.3, Frameworks 5.100.0, Qt 5.15.6, kernel 5.19.0-23 on Ryzen 5 4600H, AMD Renoir, X11
FWIW: it's always useful to state the exact Plasma version (+ distribution) when asking questions, makes it easier to help ... |
Registered Member
|
du benutzt anscheinend cmake
http://www.cmake.org/cmake/help/examples.html dann bist du sicher, dass du a) taglib installiert hast? b) du das ganze bei cmake mit einbindest (s.o.) c) die richtige version benutzt (sehr wahrscheinlich schon) Grüße |
KDE Developer
|
Das ist nen Linker-Fehler, wie hast du die Library denn in deiner CMakeLists.txt eingebunden?
Siehe auch: http://www.cmake.org/cmake/help/cmake_tutorial.html i.Bs. find_package & target_link_libraries brauchst du.
current KDE projects: Quanta, KDevelop, Kate
|
Registered Member
|
hallo,
vielen dank fuer die schnelle reaktion von euch allen! @Mamarok >Bist du sicher, dass diese lib so heisst und nicht eher libtag*? sorry da hast du recht @punkkeks >a) taglib installiert hast? taglib-1.7-8.1.2.x86_64 libtag1-1.7-8.1.2.x86_64 >du das ganze bei cmake mit einbindest (s.o.) wo macht man das bei kDevelop ? >die richtige version benutzt (sehr wahrscheinlich schon) richtige version von was ? @Milian Wolff >Das ist nen Linker-Fehler, wie hast du die Library denn in deiner >CMakeLists.txt eingebunden? Wenn ich wüste wie ich das dem kDevelop beibringe |
KDE Developer
|
lies bitte die cmake tutorials und dann öffne halt die cmakelists.txt und füge die passenden Zeilen hinzu.
current KDE projects: Quanta, KDevelop, Kate
|
Registered Member
|
ok super danke, d.h. im kDevel 4.2 kann man da nichts einstellen?
so gehts ! CMakeLists.txt project(mcm) cmake_minimum_required(VERSION 2.6) find_package(Qt4 REQUIRED) include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} /usr/include/taglib) set(mcm_SRCS mcm.cpp main.cpp) qt4_automoc(${mcm_SRCS}) add_executable(mcm ${mcm_SRCS}) target_link_libraries(mcm ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} tag) |
Global Moderator
|
KDevelop hat kein eigenes Buildsystem. Es unterstützt dich nur dabei, die CMakeLists.txt-Dateien zu bearbeiten -- man kann also in KDevelop generell nicht einstellen, wie die Anwendung übersetzt wird (außer ein paar Konfigurations-Optionen für cmake). Insofern hat dein Problem eigentlich gar nichts mit KDevelop zu tun, sondern nur mit CMake
Übrigens: Was du da machst, geht zwar, ist aber keine gute Lösung. Stattdessen solltest du FIND_PACKAGE benutzen, um die Bibliothek zu finden.
I'm working on the KDevelop IDE.
|
Registered users: Bing [Bot], Evergrowing, Google [Bot]