在Mac OSX上使用pkg-config和Qt Creator/qmake

Spu*_*dun 10 macos homebrew qt qmake

对于Mac OSX(10.8.4),pkg-config并没有出现.对于我的Qt项目,我想使用pkg-config链接协议缓冲区,以便它可以移植.选择Qt的关键在于首先要有一个便携式应用程序.

但是,qmake不会让我使用pkg-config.使用pkg-config输出将库链接到QT项目提供了一个应该有效的简单配方.但事实并非如此

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
Run Code Online (Sandbox Code Playgroud)

当我深入挖掘时,我找到了解决方案.

Spu*_*dun 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 concurrent audio-backend v8 v8snapshot debug release qt_framework

因此QT_CONFIG -= no-pkg-config,在项目文件中添加一行就可以修复它.

对于Qt Creator

另一个问题是Finder启动的Qt Creator在路径中不会有/ usr/local/bin.如https://serverfault.com/questions/16355/how-to-set-global-path-on-os-x中所述,PATH正在设置在launchd.conf以外的地方,我不知道在哪里http ://overwatering.org/blog/2012/08/setting-path-osx-mountain-lion/您需要将导出PATH =/usr/local/bin:$ PATH添加到/etc/launchd.conf(创建文件)如果它不存在).

在编辑了@vmarquet指出的launchd.conf文件后重新启动Qt Creator