当前位置: 首页 > 知识库问答 >
问题:

如何用CMAKE在OSX包中包含库

金飞翼
2023-03-14

    dyld: Library not loaded: libxl.dylib
    Referenced from: 
    /path/to/executable/
      Reason: image not found

如果任何人有一个解决办法,或者可以指出我应该读什么的方向,以进一步理解这一点,这将是非常感谢的。

参见下面的cmakelists.txt

    cmake_minimum_required(VERSION 3.7)
    project(project name)

    set(CMAKE_CXX_STANDARD 14)

    set(SOURCE_FILES main.cpp)

    find_package( Qt5Core REQUIRED )
    find_package( Qt5Widgets REQUIRED )
    find_package( Qt5Gui REQUIRED )

    set(PROJECT_LINK_LIBS libxl.dylib)
    link_directories(${CMAKE_SOURCE_DIR}/LibXL/lib)
    include_directories(${CMAKE_SOURCE_DIR}/LibXL/include_cpp)


    #Mac Bundle (Built on Mac)
    add_executable(project_target_mac MACOSX_BUNDLE main.cpp)
    qt5_use_modules( project_target_mac Core Widgets Gui )
    target_link_libraries(project_target_mac Qt5::Widgets)
    target_link_libraries(project_target_mac ${PROJECT_LINK_LIBS} )
    #set_target_properties(project_target_mac PROPERTIES INSTALL_RPATH "${CMAKE_SOURCE_DIR}/LibXL/lib")

    add_executable(project_target ${SOURCE_FILES})
    qt5_use_modules( project_target Core Widgets Gui )
    target_link_libraries(project_target Qt5::Widgets)
    target_link_libraries(project_target ${PROJECT_LINK_LIBS

} )

共有1个答案

洪通
2023-03-14

在OSX上,人通常使用框架,并将其与安装规则集成到应用程序包中。

规则看起来像:

    install( DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/ofxSyphon/libs/Syphon/lib/osx/Syphon.framework"
    DESTINATION ${APP_NAME}.app/Contents/Frameworks")

然后framework文件夹将被复制到应用程序包的contents/frameworks子文件夹中。为了使其发挥作用,应用程序本身应该安装如下内容:

install(TARGETS ${APP_NAME} DESTINATION .)
 类似资料:
  • 尝试转换多个时。使用py2exe将文件复制到exe文件中我得到错误:回溯(最近一次调用上次):文件“ParentWindow.py”,第7行,in 提到的“FileAnalysers1”是包含. py脚本的python包。如何在exe中包含整个包?

  • 问题内容: 我正在编写一个网络自动化程序,到目前为止,使用Selenium的FirefoxDriver可以正常工作。但是,如果未安装Firefox,我想使其使用Chrome。我下载了ChromeDriver,将其放在Eclipse项目的文件夹中,然后运行它。在我添加之后,它运行良好。但是,当我尝试导出它时(使用Eclipse的标准Export)。我相信它会崩溃,因为它找不到ChromeDriver

  • 问题内容: 我正在使用pyinstaller创建我的python脚本的可执行文件。 在脚本中,我使用了以下导入: 问题是,运行时,它将导致包括Firefox而不是Chrome。在结果文件夹c:… \ dist \ myscript \ selenium \ webdriver中,有一个firefox文件夹,因此它只是跳过了chromedriver,这对我来说是个严重的问题,因为脚本需要与Chrom

  • 我正在使用cmake来构建我的C++项目。 我在src文件夹中有我的cmakelist.txt和main.cpp。

  • 本文向大家介绍如何在Visual Studio 2012中包含库?,包括了如何在Visual Studio 2012中包含库?的使用技巧和注意事项,需要的朋友参考一下 要在Visual Studio 2012中添加库,有两种不同的方法。第一个是手动方法。第二个是从代码添加库。 首先让我们看看手动方法。 要添加一些库,我们必须遵循以下五个步骤: 使用适当的声明添加#include语句必要的文件。例如

  • 我还使用tkinter用Python3.7编写了一个程序。因为我使用的是外部图片,所以当我将所有内容编译成一个exe时,我需要包含它们。我尝试过执行,但仍然出现以下错误: _特金特。Tcl错误:无法打开“files/bg.png”:没有这样的文件或目录 代码如下: 我做错了什么?我也尝试过添加二进制文件,将该文件添加到我的spec文件中。我真的搞不懂!