0
我试图建立一些KDE软件我在KDevelop的写作,但我得到这些错误:KD应用不建,未定义全球化志愿服务青年到Solid库
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为什么拒绝构建它。
显然它是需要的$ {KED4_SOLID_LIBS}。我没有在任何文档中的任何地方看到这一点 - 你知道它是否在任何地方在线上市? – kemra102 2012-03-03 19:32:05
一些文档:http://www.vtk.org/Wiki/CMake:How_To_Find_Libraries#How_package_finding_works 正确地说,您的CMake构建系统应该可以完整地执行find_package/if(FOUND)/ Libs/Inc Dirs。 – OliJG 2012-03-03 22:25:39