2012-05-10 124 views
1

我試圖用QWT v到得到以下C++程序6.0.1工作:錯誤在Mac OSX編譯簡單QWT程序時10.7.4

#include <cmath> 
#include <QApplication> 
#include <qwt_plot.h> 
#include <qwt_plot_curve.h> 

int main(int argc, char **argv) 
{ 
    QApplication a(argc, argv); 
    QwtPlot plot(QwtText("CppQwtExample1")); 
    plot.setGeometry(0,0,640,400); 
    plot.setAxisScale(QwtPlot::xBottom, 0.0, 2.0*M_PI); 
    plot.setAxisScale(QwtPlot::yLeft, -1.0, 1.0); 

    QwtPlotCurve sine("Sine"); 
    std::vector<double> xs; 
    std::vector<double> ys; 
    for (double x=0; x<2.0*M_PI; x+=(M_PI/10.0)) { 
     xs.push_back(x); 
     ys.push_back(std::sin(x)); 
    } 
    sine.setData(&xs[0], &ys[0], xs.size()); 
    sine.attach(&plot); 

    plot.show(); 
    return a.exec(); 
} 

和.pro文件的樣子:

TEMPLATE = app 
TARGET = CppQwtExample1 
QMAKEFEATURES += /usr/local/qwt-6.0.1/features 
CONFIG += qwt 
INCLUDEPATH += /usr/local/qwt-6.0.1/lib/qwt.framework/Headers 
LIBS += -L/usr/local/qwt-6.0.1/lib/qwt.framework/Versions/6/ \ 
-lqwt 
SOURCES += qwtTest.cpp 

然而,當我現在嘗試做

QMAKE

使

我得到的錯誤:

LD:庫找不到-lqwt collect2:LD返回1個退出狀態 化妝:* [qwtTest.app/Contents/MacOS/qwtTest]錯誤1

我肯定會錯過這裏的東西。任何幫助是極大的讚賞。

回答

2
LIBS += -L/usr/local/qwt-6.0.1/lib/qwt.framework/Versions/6/ -lqwt 

這是錯誤的。由於Mac OS X框架的命名約定,qwt.framework內部的動態庫不被命名爲「libqwt.dylib」(鏈接器要求),而只是「qwt」。 使用

LIBS += -F/usr/local/qwt-6.0.1/lib -framework qwt 

代替。

+0

謝謝!這似乎是訣竅。我現在可以毫無任何錯誤地編譯程序。但是,現在當我嘗試打開生成的應用程序時,出現Dyld錯誤消息:庫未加載:qwt.framework/Versions/6/qwtReferenced from:/Users/USER/*/qwtTest.app/Contents/MacOS/qwtTest 原因是:image not found – user1066157

+0

好的,通過關注http://www.qtcentre.org/archive/index.php/t-37278.html的討論,我設法通過使用softlink來消除錯誤: sudo ln -s /usr/local/qwt-6.0.1/lib/qwt.framework/qwt/usr/lib/qwt。該程序仍然由於某種原因崩潰,但至少我沒有得到任何關於無法找到或加載的庫的錯誤。 – user1066157

+0

然後很酷。很高興我能幫助你。 – 2012-05-11 17:55:01