我在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: