创建一个.pc文件
Qmake creating a .pc file
有人知道qmake是否可以创建。pc文件吗?我找到了一个说可以的人:http://www.qtcentre.org/threads/24422-How-can-we-create-.pc-file-automatically。但我已经尝试过了,并得到了与在帖子底部有问题的人相同的结果。我想知道是否有人知道这件事。
TEMPLATE = lib
TARGET = proc_Model
QT += declarative dbus
CONFIG += qt plugin dbus create_pc
DESTDIR = /usr/lib/
OBJECTS_DIR = .obj
MOC_DIR = .moc
TARGET = $$qtLibraryTarget($$TARGET)
INCLUDEPATH += ../common
# Input
SOURCES += ../common/proc_struct.cpp
listitem.cpp
listmodel.cpp
process.cpp
proc_if.cpp
HEADERS += ../common/proc_struct.h
listitem.h
listmodel.h
process.h
proc_if.h
headers.path= /usr/include/proc_Model
headers.files = ../common/proc_struct.h
listitem.h
listmodel.h
process.h
proc_if.h
target.path = /usr/lib
QMAKE_PKGCONFIG_NAME = proc_Model
QMAKE_PKGCONFIG_DESCRIPTION = Model that emits process info
QMAKE_PKGCONFIG_LIBDIR = $$target.path
QMAKE_PKGCONFIG_INCDIR = $$target.path
QMAKE_PKGCONFIG_DESTDIR = pkgconfig
INSTALLS+=headers target
当我执行install时,我得到以下输出:
install -m 755 -p "/usr/lib/libproc_Model.so" "/usr/lib/libproc_Model.so"
install: `/usr/lib/libproc_Model.so' and `/usr/lib/libproc_Model.so' are the same file
make: [install_target] Error 1 (ignored)
strip --strip-unneeded "/usr/lib/libproc_Model.so"
install -m 644 -p "/usr/lib/pkgconfig/proc_Model.pc" "/usr/lib/pkgconfig/proc_Model.pc"
install: cannot stat `/usr/lib/pkgconfig/proc_Model.pc': No such file or directory
make: [install_target] Error 1 (ignored)
根据qmake源代码,您必须添加:
CONFIG += create_prl no_install_prl
create_pc仅使用命令"qmake -prl"将。pc文件目标的规则添加到makefile中,并且该命令仅在create_prl选项存在时创建。pc文件。
no_install_prl防止在${target.path}中安装由create_prl生成的不需要的.prl文件。
我在这里做了一个完整的例子:https://github.com/pvanhoof/dir-examples/blob/master/qmake-example/src/libs/qmake-example/qmake-example.pro
## We get the PREFIX, MAJOR_VERSION, MINOR_VERSION and PATCH_VERSION
## from this project-wide include
include(../../../qmake-example.pri)
## We will use the standard lib template of qmake
TEMPLATE = lib
## We need to set VERSION to a semver.org version for compile_libtool
VERSION = $${MAJOR_VERSION}"."$${MINOR_VERSION}"."$${PATCH_VERSION}
## According https://autotools.io/libtool/version.html, section 4.3
## we should have as target-name the API version in the library's name
TARGET = qmake-example-$${MAJOR_VERSION}"."$${MINOR_VERSION}
## We will write a define in config.h for access to the semver.org
## version as a double quoted string
QMAKE_SUBSTITUTES += config.h.in
## Our example happens to use QDebug, so we need QtCore here
QT = core
## This is of course optional
CONFIG += c++14
## We will be using libtool style libraries
CONFIG += compile_libtool
CONFIG += create_libtool
## These will create a pkg-config .pc file for us
CONFIG += create_pc create_prl no_install_prl
## Project sources
SOURCES =
qmake-example.cpp
## Project headers
HEADERS =
qmake-example.h
## We will install the headers in a API specific include path
headers.path = $${PREFIX}/include/qmake-example-$${MAJOR_VERSION}"."$${MINOR_VERSION}
## Here will go all the installed headers
headers.files = $${HEADERS}
## Here we will install the library to
target.path = $${PREFIX}/lib
## This is the configuration for generating the pkg-config file
QMAKE_PKGCONFIG_NAME = $${TARGET}
QMAKE_PKGCONFIG_DESCRIPTION = An example that illustrates how to do it right with qmake
# This is our libdir
QMAKE_PKGCONFIG_LIBDIR = $$target.path
# This is where our API specific headers are
QMAKE_PKGCONFIG_INCDIR = $$headers.path
QMAKE_PKGCONFIG_DESTDIR = pkgconfig
QMAKE_PKGCONFIG_PREFIX = $${PREFIX}
QMAKE_PKGCONFIG_VERSION = $$VERSION
## Installation targets (the pkg-config seems to install automatically)
INSTALLS += headers target
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 函数向量_指针有不同的原型,我可以构建一个吗
- 在c++中用vector填充一个简单的动态数组
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 预处理器:插入结构名称中的前一个行号
- 我在c++代码中生成了一个运行时#3异常
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 从链接列表c++中删除一个项目
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '