一个非常简单的Qt项目无法使用Qt 5.10在Docker容器中构建(具有从opensuse:tumbleweed
派生的图像)。该项目如下:
sh-4.4# cat test.pro
TEMPLATE = app
TARGET = test
INCLUDEPATH += .
INCLUDEPATH += sub
HEADERS = obj.h sub/iface.h
SOURCES = obj.cpp main.cpp
sh-4.4# cat sub/iface.h
#pragma once
#include <QtPlugin>
class Interface
{
public:
virtual ~Interface () {}
};
Q_DECLARE_INTERFACE (Interface, "org.meh.interface/1.0")
sh-4.4# cat obj.h
#pragma once
#include <QObject>
#include <sub/iface.h>
class Obj : public QObject
{
Q_OBJECT
Q_INTERFACES (Interface)
};
sh-4.4# cat obj.cpp
#include "obj.h"
sh-4.4# cat main.cpp
int main() {}
在这种情况下,moc
抱怨如下:
obj.h:9: Error: Undefined interface
在Qt 5.9的另一个容器中一切都很好,当项目在openSUSE Build Service(使用其他东西而不是Docker)中构建时,Qt 5.10的一切都很好。一些快速谷歌搜索没有透露最近的Qt版本的任何相关的bug报告。
可能出现什么问题?
答案 0 :(得分:0)
答案 1 :(得分:0)
您是否尝试使用--privileged
运行容器(请参见Which capabilities are needed for statx to stop giving EPERM)?