2012-02-20 3 views
0

내가 KDevelop에서 작성 중 일부 KDE 소프트웨어를 구축을 위해 노력하고 있지만, 이러한 오류가 점점 오전 :KD 앱 솔리드 libs가에 정의되지 않은 referance에 구축하지 않습니다

CMakeFiles/kquickformat.dir/deviceinfo.o: In function `QList<Solid::Device>::node_destruct(QList<Solid::Device>::Node*, QList<Solid::Device>::Node*)': 
/usr/include/QtCore/qlist.h:418: undefined reference to `Solid::Device::~Device()' 
CMakeFiles/kquickformat.dir/deviceinfo.o: In function `DeviceInfo': 
/home/kemra102/projects/KDE/kquickformat/src/deviceinfo.cpp:5: undefined reference to `Solid::DeviceNotifier::instance()' 
/home/kemra102/projects/KDE/kquickformat/src/deviceinfo.cpp:7: undefined reference to `Solid::Device::listFromType(Solid::DeviceInterface::Type const&, QString const&)' 
CMakeFiles/kquickformat.dir/deviceinfo.o: In function `DeviceNotifier': 
/usr/include/KDE/Solid/../../solid/devicenotifier.h:42: undefined reference to `vtable for Solid::DeviceNotifier' 
CMakeFiles/kquickformat.dir/deviceinfo.o: In function `~DeviceNotifier': 
/usr/include/KDE/Solid/../../solid/devicenotifier.h:42: undefined reference to `vtable for Solid::DeviceNotifier' 

관련 코드는 다음과 같다 :

#include "deviceinfo.h" 

DeviceInfo::DeviceInfo(Solid::DeviceNotifier *parent) 
{ 
    Solid::DeviceNotifier *notifier = Solid::DeviceNotifier::instance(); 

    QList<Solid::Device> list = Solid::Device::listFromType(Solid::DeviceInterface::StorageDrive, QString()); 
} 

#ifndef DEVICEINFO_H 
#define DEVICEINFO_H 

#include <QList> 
#include <QString> 
#include <Solid/Device> 
#include <Solid/DeviceNotifier> 
#include <Solid/StorageDrive> 

class DeviceInfo : public Solid::DeviceNotifier 
{ 
    public: 


    private: 
    DeviceInfo(Solid::DeviceNotifier *parent=0); 
    Solid::DeviceNotifier* notifier; 
    QList<Solid::Device> list; 
}; 

#endif 

나는 확실히 라이브러리를 설치 한 내 파일 시스템에서 볼 수 있기 때문에 그럴 수 없어 Kdevelop가 왜 그것을 구축하기를 거부하는지 이해하십시오.

답변

1

CMake에게 해당 라이브러리를 연결하도록 지시 했습니까? "$ {SOLID_LIBS}"var을 (를) 사용할 수 있다고 생각합니다.

target_link_libraries(... ${SOLID_LIBS} ...) 
+0

분명히 $ {KED4_SOLID_LIBS}이 (가) 필요합니다. 이 설명서가 어디서나 언급 된 것을 보지 못했습니다 - 어디서나 온라인 목록에 올라 있는지 알고 있습니까? – kemra102

+0

일부 문서 : http://www.vtk.org/Wiki/CMake:How_To_Find_Libraries#How_package_finding_works 적절하게, CMake 빌드 시스템은 find_package/if (FOUND)/Libs/Inc Dirs 전체를 수행해야합니다. – OliJG