我是新的Linux和Qt,我試圖在Qt中創建C++庫。 我有一個名爲imaglib的庫,裏面有幾個類。到目前爲止,我已經做到了這一點:在Qt中創建C++庫
imaglib_global.h:
#ifndef IMAGLIB_GLOBAL_H
#define IMAGLIB_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(IMAGLIB_LIBRARY)
# define IMAGLIBSHARED_EXPORT Q_DECL_EXPORT
#else
# define IMAGLIBSHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // IMAGLIB_GLOBAL_H
imaglib.h:
#ifndef IMAGLIB_H
#define IMAGLIB_H
#include "imaglib_global.h"
#include "imagClass.h"
class IMAGLIBSHARED_EXPORT IMaglib
{
public:
IMaglib();
};
#endif // IMAGLIB_H
imagClass.h:
#include "imaglib_global.h"
class IMAGLIBSHARED_EXPORT imagClass
{
public:
imagClass();
void ImagOperation();
// Other data goes here
};
// there are several imag classes
當我建立這個它的工作原理並在調試文件夾中創建.o文件和.so,.so.1,.so.1.0和.so.1.0.0,但是當我嘗試將其包含在應用程序中時,它不會工作ķ。我一直在努力,這些文件在我的項目叫imagLib文件夾中複製,並將此代碼application.pro文件:
TARGET = MyApp
TEMPLATE = app
DEPENDPATH += imagLib
INCLUDEPATH += imagLib
LIBS+= -L imaglib/debug -llibiMaglib
// It creates libiMaglib.so file so I thought I should use this one but it gives me error on compilation "cannot find -llibiiMaglib"
在那之後我試圖從終端建庫:
ar crv imaglibrary.so imaglib.o imagClass.o
但它給了我同樣的錯誤,當我嘗試用imaglibrary.so構建應用程序時,它給了我同樣的錯誤。如何解決這個問題?
EDIT
我還試圖以在終端的.lib文件並將其包含在如上所示.so文件application.pro文件。它的工作原理,但它給了我不同的錯誤:
「未定義的引用imagClass :: ImagOperation()」,當我嘗試創建對象,並從代碼調用它。
什麼是確切的錯誤? – anderas
「找不到-llibiiMaglib」 – user2880783
您是否在庫的專業文件中定義了IMAGLIB_LIBRARY? – Nejat