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,在项目文件中添加一行就可以修复它.
另一个问题是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