大家好,又见面了,我是你们的朋友全栈君。
在linux环境下进行程序开发时,经常需要使用makefile管理编译代码,特别是一些大型工程,而makefile工具语法晦涩深入研究较为困难,好在有很多工具可以自动生成makefile,qmake就是其中的一种。
TEMPLATE = lib #lib库,app可执行工程
TARGET = Func
CONFIG += console c++11 #C++11标准
CONFIG -= qt
DEFINES += IOS_64 #64位
DEFINES += IOS_LINUX #Linux系统
QMAKE_CXXFLAGS += -fPIC
QMAKE_LFLAGS_DEBUG += -L$$PWD/../../Bin/Debug/
QMAKE_LFLAGS_DEBUG += -Wl,-rpath=../../Bin/Debug/
QMAKE_LFLAGS_RELEASE += -L$$PWD/../../Bin/Debug/
QMAKE_LFLAGS_RELEASE += -Wl,-rpath=../../Bin/Debug/
LIBS += -ldl #要链接的库
LIBS += -lboost_thread
release: CurConfig = Release
debug: CurConfig = Debug
DESTDIR = ../../Bin/$$CurConfig/ #目标文件的最终路径,从pro文件开始的相对路径
OBJECTS_DIR = obj/$$CurConfig #.o文件的目录
SOURCES += \
../FunPublic/ts1.cpp \
../FunPublic/ts2.cpp \
../FunPublic/ts3.cpp \
HEADERS += \
../FunPublic/ts1.h \
../FunPublic/ts2.h \
../FunPublic/ts3.h \
unix {
target.path = /usr/lib
INSTALLS += target
}
INCLUDEPATH += /usr/local/cuda/include/
QMAKE_LFLAGS += -shared
QMAKE_LFLAGS += -L$$PWD/../../Bin/Debug/
QMAKE_LFLAGS += -L$$PWD/../../../../ThirdPartyLib/openrave-0.9/lib
QMAKE_LFLAGS += -Wl,-rpath=../../../../ThirdPartyLib/openrave-0.9/lib/
#如果要添加链接库,只需要加载头文件路径和动态库路径即可
# INCLUDEPATH += /usr/local/cuda/include/ #相对路径是相对工程文件pro的路径
# QMAKE_LFLAGS += -L$$PWD/../../../../ThirdPartyLib/openrave-0.9/lib #相对路径是相对工程文件pro的路径 编译时静态链接
# QMAKE_LFLAGS += -Wl,-rpath=../../../../ThirdPartyLib/openrave-0.9/lib/ #相对路径是相对工作路径 运行时动态链接
# QMAKE_LFLAGS += -Wl,-rpath=\\\$\$ORIGIN/jsoncpp #相对路径是相对so库路径 运行时动态链接
SOURCES = hello.cpp main.cpp
HEADERS = hello.h
CONFIG += qt warn_on release
生成makefile (makefile是根据.pro文件参数生成的):
qmake -o Makefile hello.pro
qmake -t vcapp -o hello.dsp hello.pro
可以使用qmake -h
查看具体的说明
ldd
命令查看so库所依赖的其他so库,readelf -d libxxx.so | grep rpath
查看xxx.so
配置的依赖库的链接路径发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144239.html原文链接:https://javaforall.cn