无法在 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/&lt;all-headers&gt; 下的临时位置来解决此问题

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还是使用预编译的库? 我不记得了。但我可以找到&lt;path-to-Qt&gt;/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

Webview 在 Windows 上的 mingw 中无法在 Qt Creator 中工作

Mac 上 Qt Creator 中的 openCV

在 Mac OS 下使用 Qt-creator 调试时如何进入 Qt 的源代码