当前位置: 代码迷 >> QT开发 >> qt调用Linux下自定义的动态链接库有关问题
  详细解决方案

qt调用Linux下自定义的动态链接库有关问题

热度:68   发布时间:2016-04-25 04:51:13.0
qt调用Linux下自定义的动态链接库问题
我在Linux下用C写了个动态链接库,而且用C写了个测试函数可以正常使用。
http://blog.csdn.net/qianguozheng/article/details/6786505
但是我改由Qt写了个测试函数的时候
C/C++ code
#include <QApplication>#include "socklib.h"int main(int argc,char *argv[]){  QApplication app(argc,argv);  char *title;  title=getWebPageTitle("www.yahoo.com");  //  QMessageBox::information();  qDebug("Title:%s",title);  return app.exec();}


修改了Makefile

C/C++ code
############################################################################## Makefile for building: testqt# Generated by qmake (2.01a) (Qt 4.6.2) on: Sun Sep 18 21:01:58 2011# Project:  testqt.pro# Template: app# Command: /usr/bin/qmake -unix -o Makefile testqt.pro#################################################################################### Compiler, tools and optionsCC            = gccCXX           = g++DEFINES       = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHAREDCFLAGS        = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)CXXFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)INCPATH       = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.LINK          = g++LFLAGS        = -Wl,-O1LIBS          = $(SUBLIBS)  -L/usr/lib -lQtGui -lQtCore -lpthread -L../lib/ -lsockAR            = ar cqsRANLIB        = QMAKE         = /usr/bin/qmakeTAR           = tar -cfCOMPRESS      = gzip -9fCOPY          = cp -fSED           = sedCOPY_FILE     = $(COPY)COPY_DIR      = $(COPY) -rSTRIP         = stripINSTALL_FILE  = install -m 644 -pINSTALL_DIR   = $(COPY_DIR)INSTALL_PROGRAM = install -m 755 -pDEL_FILE      = rm -fSYMLINK       = ln -f -sDEL_DIR       = rmdirMOVE          = mv -fCHK_DIR_EXISTS= test -dMKDIR         = mkdir -p####### Output directoryOBJECTS_DIR   = ./####### FilesSOURCES       = main.cpp OBJECTS       = main.oDIST          = /usr/share/qt4/mkspecs/common/g++.conf \        /usr/share/qt4/mkspecs/common/unix.conf \        /usr/share/qt4/mkspecs/common/linux.conf \        /usr/share/qt4/mkspecs/qconfig.pri \        /usr/share/qt4/mkspecs/features/qt_functions.prf \        /usr/share/qt4/mkspecs/features/qt_config.prf \        /usr/share/qt4/mkspecs/features/exclusive_builds.prf \        /usr/share/qt4/mkspecs/features/default_pre.prf \        /usr/share/qt4/mkspecs/features/release.prf \        /usr/share/qt4/mkspecs/features/default_post.prf \        /usr/share/qt4/mkspecs/features/warn_on.prf \        /usr/share/qt4/mkspecs/features/qt.prf \        /usr/share/qt4/mkspecs/features/unix/thread.prf \        /usr/share/qt4/mkspecs/features/moc.prf \        /usr/share/qt4/mkspecs/features/resources.prf \        /usr/share/qt4/mkspecs/features/uic.prf \        /usr/share/qt4/mkspecs/features/yacc.prf \        /usr/share/qt4/mkspecs/features/lex.prf \        /usr/share/qt4/mkspecs/features/include_source_dir.prf \        testqt.proQMAKE_TARGET  = testqtDESTDIR       = TARGET        = testqtfirst: all####### Implicit rules.SUFFIXES: .o .c .cpp .cc .cxx .C.cpp.o:    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<".cc.o:    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<".cxx.o:    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<".C.o:    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<".c.o:    $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"####### Build rulesall: Makefile $(TARGET)$(TARGET):  $(OBJECTS)      $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) -L../lib -lsockMakefile: testqt.pro  /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/g++.conf \        /usr/share/qt4/mkspecs/common/unix.conf \        /usr/share/qt4/mkspecs/common/linux.conf \        /usr/share/qt4/mkspecs/qconfig.pri \        /usr/share/qt4/mkspecs/features/qt_functions.prf \        /usr/share/qt4/mkspecs/features/qt_config.prf \        /usr/share/qt4/mkspecs/features/exclusive_builds.prf \        /usr/share/qt4/mkspecs/features/default_pre.prf \        /usr/share/qt4/mkspecs/features/release.prf \        /usr/share/qt4/mkspecs/features/default_post.prf \        /usr/share/qt4/mkspecs/features/warn_on.prf \        /usr/share/qt4/mkspecs/features/qt.prf \        /usr/share/qt4/mkspecs/features/unix/thread.prf \        /usr/share/qt4/mkspecs/features/moc.prf \        /usr/share/qt4/mkspecs/features/resources.prf \        /usr/share/qt4/mkspecs/features/uic.prf \        /usr/share/qt4/mkspecs/features/yacc.prf \        /usr/share/qt4/mkspecs/features/lex.prf \        /usr/share/qt4/mkspecs/features/include_source_dir.prf \        /usr/lib/libQtGui.prl \        /usr/lib/libQtCore.prl    $(QMAKE) -unix -o Makefile testqt.pro/usr/share/qt4/mkspecs/common/g++.conf:/usr/share/qt4/mkspecs/common/unix.conf:/usr/share/qt4/mkspecs/common/linux.conf:/usr/share/qt4/mkspecs/qconfig.pri:/usr/share/qt4/mkspecs/features/qt_functions.prf:/usr/share/qt4/mkspecs/features/qt_config.prf:/usr/share/qt4/mkspecs/features/exclusive_builds.prf:/usr/share/qt4/mkspecs/features/default_pre.prf:/usr/share/qt4/mkspecs/features/release.prf:/usr/share/qt4/mkspecs/features/default_post.prf:/usr/share/qt4/mkspecs/features/warn_on.prf:/usr/share/qt4/mkspecs/features/qt.prf:/usr/share/qt4/mkspecs/features/unix/thread.prf:/usr/share/qt4/mkspecs/features/moc.prf:/usr/share/qt4/mkspecs/features/resources.prf:/usr/share/qt4/mkspecs/features/uic.prf:/usr/share/qt4/mkspecs/features/yacc.prf:/usr/share/qt4/mkspecs/features/lex.prf:/usr/share/qt4/mkspecs/features/include_source_dir.prf:/usr/lib/libQtGui.prl:/usr/lib/libQtCore.prl:qmake:  FORCE    @$(QMAKE) -unix -o Makefile testqt.prodist:     @$(CHK_DIR_EXISTS) .tmp/testqt1.0.0 || $(MKDIR) .tmp/testqt1.0.0     $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/testqt1.0.0/ && $(COPY_FILE) --parents socklib.h .tmp/testqt1.0.0/ && $(COPY_FILE) --parents main.cpp .tmp/testqt1.0.0/ && (cd `dirname .tmp/testqt1.0.0` && $(TAR) testqt1.0.0.tar testqt1.0.0 && $(COMPRESS) testqt1.0.0.tar) && $(MOVE) `dirname .tmp/testqt1.0.0`/testqt1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/testqt1.0.0clean:compiler_clean     -$(DEL_FILE) $(OBJECTS)    -$(DEL_FILE) *~ core *.core####### Sub-librariesdistclean: clean    -$(DEL_FILE) $(TARGET)     -$(DEL_FILE) Makefilemocclean: compiler_moc_header_clean compiler_moc_source_cleanmocables: compiler_moc_header_make_all compiler_moc_source_make_allcompiler_moc_header_make_all:compiler_moc_header_clean:compiler_rcc_make_all:compiler_rcc_clean:compiler_image_collection_make_all: qmake_image_collection.cppcompiler_image_collection_clean:    -$(DEL_FILE) qmake_image_collection.cppcompiler_moc_source_make_all:compiler_moc_source_clean:compiler_uic_make_all:compiler_uic_clean:compiler_yacc_decl_make_all:compiler_yacc_decl_clean:compiler_yacc_impl_make_all:compiler_yacc_impl_clean:compiler_lex_make_all:compiler_lex_clean:compiler_clean: ####### Compilemain.o: main.cpp socklib.h    $(CXX) -c -L../lib -lsock $(CXXFLAGS) $(INCPATH) -o main.o main.cpp  ####### Installinstall:   FORCEuninstall:   FORCEFORCE: