다른 Qwt 클래스 중 QwtPlotMagnifier를 사용하는 라이브러리가 있습니다. QwtPlotMagnifier를 서브 클래 싱하여 플롯이 재조정 될 때 신호를 낼 수 있도록 결정했습니다. 라이브러리 (mylib.lib)가 컴파일되지만이를 사용하는 응용 프로그램이 QwtPlotMagnifier의 moc 출력과 관련하여 해결되지 않은 외부에 대해 불평하고 있습니다.qwt 클래스를 하위 클래스로 만들 때 해결되지 않은 외부
정적으로 qwt를 연결하고 있습니다. 최하위 레벨 라이브러리에서 전 처리기 지시문 QWT_DLL을 가져야한다는 요구 사항은 여기에 적용되지 않습니다. 서브 클래스 선언에 대한 특별
mylib.lib(moc_PlotMagnifier.obj) : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QwtPlotMagnifier::staticMetaObject" ([email protected]@@[email protected]@B)
아무것도 :
#pragma once
#include "qwt_plot_magnifier.h"
/**
subclass of QwtPlotMagnifier to provide a signal when zooming is complete
*/
class PlotMagnifier : public QwtPlotMagnifier
{
Q_OBJECT
public:
explicit PlotMagnifier(QWidget *w);
virtual ~PlotMagnifier();
signals:
void rescaled();
protected:
virtual void rescale(double factor);
};
난 비주얼 스튜디오 2013 FWIW에
다음은 오류 (서브 클래스가 PlotMagnifier라고 함)입니다. 내 응용 프로그램에는 qwtd.lib이 항상 포함되어 있습니다. 이것은 내 부분에 어리석은 실수가되어야 해. 내 뇌를 킥 스타트 시켜줘, 누군가!
위의 두 가지 사항을 모두 해결했다고 생각합니다. MSVC를 사용하여 컴파일 중이므로 설정을 구성 할 필요가 없습니다 (그리고 QWT는 이미 성공적으로 QWT를 사용하고 있습니다). 또한 qwt를 정적으로 연결하므로 QWT_DLL이 필요하지 않습니다. 사실 내가 이것을 정의하면, 모든 곳에서 오류가 발생합니다. – mike
나는 그것을 다시 가져옵니다! 정리 및 재구성 한 후에는 QWT_DLL로 정상적으로 컴파일 할 수 있습니다. 이것은 문제를 해결하고 많은 감사합니다! – mike
나는 downvote를 여기에서 이해하지 않는다. .. 이것은 틀린 것처럼 보인다. – Bebs