无法在 Mac 上的 Qt creator 中链接 pylon 框架
Posted
技术标签:
【中文标题】无法在 Mac 上的 Qt creator 中链接 pylon 框架【英文标题】:Fail to link pylon framework in Qt creator on Mac 【发布时间】:2016-09-26 02:22:11 【问题描述】:我正在尝试将 pylon 框架添加到 Mac 上的 Qt creator。
QMAKE_LFLAGS += -F/Library/Frameworks/
LIBS += -framework pylon
这对我不起作用。错误总是'pylon/PylonIncludes.h' file not found
。
我可以为 Qt 创建者指定头文件路径,例如INCLUDEPATH += /Library/Frameworks/pylon.framework/Versions/A/Headers
。但是在代码中包含头文件时应该是#include <PylonIncludes.h>
,而不是#include <pylon/PylonIncludes.h>
。
但是API headers都使用#include <pylon/PylonIncludes.h>
这样的形式,这意味着如果我想使用现有的API,我不能指定header的路径。
有人知道如何将 pylon 框架添加到 Qt creator 中吗?
【问题讨论】:
为什么你认为链接器参数 (LIBS
) 会影响编译器的包含路径?
@KubaOber 使用框架:doc.qt.io/qt-5/qmake-platform-notes.html#using-frameworks
【参考方案1】:
A)如果你是用源码编译这个 Pylon 框架,那么
在这些情况下你需要安装源代码,你需要进入你的 Pylon 源目录,例如:
<path-to-pylon>/src/include/
您可以通过运行以下命令找到安装 PylonIncludes.h 的目录:
find <path-to-Pylon> -name PylonIncludes.h
一旦找到目录,例如假设 /Users/kevin/Pylon5.5 然后在 CMAkeLists.txt 中添加以下行
INCLUDEPATH += /Users/kevin/Pylon5.5/src/include/
B) 如果您本身有二进制框架,则可以通过将所有标头复制到 pylon/<all-headers>
下的临时位置来解决此问题
cp -rf /Library/Frameworks/pylon.framework/Versions/A/Headers/* /tmp/pylonHeaders/pylon/
然后在 .pro 文件中使用以下内容
INCLUDEPATH += /tmp/pylonHeaders
LIBS += -framework pylon
【讨论】:
去QT源码目录是什么意思? pylon框架安装在/Library/Frameworks/
下。
你是在MAC上编译QT还是使用预编译的库?
我不记得了。但我可以找到<path-to-Qt>/src/qtbase/include/
。接下来我该怎么办?
Pylon 是第三方框架,Qt 未安装。为什么要包含qtbase
?
太棒了!你解决了这个问题!实际上,我添加了这些行 INCLUDEPATH += /pylonHeaders INCLUDEPATH += /pylonHeaders/pylon/GenICam LIBS += -framework pylon
以使其正常工作。顺便说一句,你有没有在 Mac 上使用 pylon 和 Qt?框架(库、API)是否基于此设置运行良好?【参考方案2】:
请参阅使用 pylon 构建应用程序的通用设置,在 OS X 的 pylon 程序员指南和 API 参考中,详细描述了如何设置 XCode 的说明:
本部分展示了使用 pylon 和 Apple Xcode 构建应用程序时最常见的 OS X 构建设置。有关更多信息,请参阅高级主题部分,例如当需要不同的配置时。
首先将pylon框架添加到您的项目中,右键单击您的项目并选择Add files to ""...。浏览到 pylon 框架的安装位置,通常是 /Library/Frameworks 并选择 pylon.framework,点击 Add 按钮。
将以下用于发布和调试配置的用户定义变量添加到您的构建目标(构建设置 -> 用户定义 -> PYLON_LIBRARY_DIR):
/Library
将以下用于发布和调试配置的框架搜索路径添加到您的构建目标(构建设置 -> 搜索路径 -> 框架搜索路径):
$(PYLON_LIBRARY_DIR)/Frameworks
将以下用于发布和调试配置的标头搜索路径添加到您的构建目标(构建设置 -> 搜索路径 -> 标头搜索路径):
$(PYLON_LIBRARY_DIR)/Frameworks/pylon.framework/Headers/GenICam
将以下用于发布和调试配置的运行路径搜索路径添加到构建目标(构建设置 -> 链接 -> 运行路径搜索路径):
$(PYLON_LIBRARY_DIR)/Frameworks
【讨论】:
请格式化您的答案,代码部分应该看起来不同,推送编辑时使用快速帮助以上是关于无法在 Mac 上的 Qt creator 中链接 pylon 框架的主要内容,如果未能解决你的问题,请参考以下文章
Qt Creator 卡在 Mac 操作系统上的“启动调试器”中
在 Mac osx 下将 OpenGL 链接到 Qt Creator
Qt Creator 链接器错误:LNK1104:无法打开 fil 'usb-1.0.lib' - Windows