pkg-config与Mac OSX(10.8.4)并不一致。对于我的Qt项目,我想使用pkg-config链接协议缓冲区,以便它可以移植。选择Qt的关键是首先要有一个便携式应用程序。
但是,qmake不允许我使用pkg-config。 Linking libraries to a QT project using pkg-config output提供了一个应该有效的简单配方。但它没有
CONFIG += link_pkgconfig
PKGCONFIG += protobuf
我收到错误Project ERROR: Package protobuf not found
尽管pkg-config和protobuf是使用自制软件和路径安装的。问题出在所有pkg-config软件包上。
qmaketest$which pkg-config
/usr/local/bin//pkg-config
qmaketest$pkg-config --cflags --libs libssl
-lssl -lcrypto -lz
qmaketest$cat project.proj
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = project
TEMPLATE = app
SOURCES +=
HEADERS +=
FORMS +=
OTHER_FILES +=
CONFIG += link_pkgconfig
PKGCONFIG += libssl
qmaketest$/Applications/Other/Qt5.0.2/5.0.2/clang_64/bin/qmake project.proj
Project ERROR: Package libssl not found
当我深入挖掘时,我找到了解决方案。
答案 0 :(得分:18)
将行QT_CONFIG -= no-pkg-config
添加到项目文件中。
默认情况下,在Mac的Qt包中禁用对pkg-config的支持。
因此,qmake配置为假设系统上没有pkg-config。
他们通过宏变量QT_CONFIG
qmaketest $ grep QT_CONFIG /Applications/Other/Qt5.0.2/5.0.2/clang_64/mkspecs/qconfig.pri QT_CONFIG + = minimal-config small-config medium-config large-config full-config build_all debug_and_release no-pkg-config coreservices accessibility opengl shared qpa reduce_exports getaddrinfo ipv6ifname getifaddrs png freetype system-zlib nis cups iconv openssl rpath corewlan并发audio-backend v8 v8snapshot debug release qt_framework
因此在项目文件中添加一行[{1}}修复了它。
另一个问题是Finder启动的Qt Creator在路径中不会有/ usr / local / bin。 如https://serverfault.com/questions/16355/how-to-set-global-path-on-os-x,PATH is getting set somewhere other than launchd.conf and I don't know where和http://overwatering.org/blog/2012/08/setting-path-osx-mountain-lion/中所述,您需要将export PATH = / usr / local / bin:$ PATH添加到/etc/launchd.conf(如果没有,则创建文件)不存在。。
在编辑了@vmarquet指出的launchd.conf文件后重新启动Qt Creator
答案 1 :(得分:2)
不要创建或修改/etc/launchd.conf:更通用的解决方案是在/etc/paths.d中创建一个包含要添加的路径的文件。 这可以使用以下单行命令完成:
sudo sh -c 'echo /usr/local/bin > /etc/paths.d/local'
如果您安装了MacPorts,也可以执行以下操作:
sudo sh -c 'echo /opt/local/bin > /etc/paths.d/MacPorts'
然后你必须关闭/重新开启会话。
答案 2 :(得分:2)
逐步地,这些对我有用(称为库“ 3rdpart”):
在.pro
中添加以下行unix { CONFIG += link_pkgconfig PKGCONFIG += lib3rdpart } macx { # Enable pkg-config (pkg-config is disabled by default in the Qt package for mac) QT_CONFIG -= no-pkg-config # pkg-config location if your brew installation is standard PKG_CONFIG = /usr/local/bin/pkg-config }
通过这种方法,我设法使用Graphviz库编译this Qt Project。您可以看到the readme file进行安装,或者看到the GraphViz.pri file以获得qmake配置的示例。