【问题标题】:Creating a QT Makefile: "dyld: Library not loaded: @rpath/QtCore.framework/Versions/5/QtCore"创建 QT Makefile:“dyld:未加载库:@rpath/QtCore.framework/Versions/5/QtCore”
【发布时间】:2017-08-02 17:16:19
【问题描述】:

出于教育目的,我正在学习从头开始创建 QT makefile - 没有 qmake。

这是我的 Makefile:

SOURCES = calculator.cpp

INCPATH = -I. -I/usr/local/qt/5.9.1/clang_64/lib/QtWidgets.framework/Headers -I/usr/local/qt/5.9.1/clang_64/lib/QtGui.framework/Headers -I/usr/local/qt/5.9.1/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/AGL.framework/Headers -I/usr/local/qt/5.9.1/clang_64/mkspecs/macx-clang -F/usr/local/qt/5.9.1/clang_64/lib

DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB

FRAMEWORK = -framework QtCore -framework QtGui -framework QtWidgets -framework OpenGL -framework DiskArbitration -framework IOKit -framework OpenGL -framework AGL

all:
    g++ -std=c++11 $(SOURCES) $(INCPATH) $(FRAMEWORK)

当我运行make 时,没有错误,并且成功生成了一个 a.out 文件。

当我尝试通过键入 ./a.out 来运行该 a.out 文件时,我收到此错误:

dyld: Library not loaded: @rpath/QtCore.framework/Versions/5/QtCore
  Referenced from: /Users/dougbeney/Desktop/Coding/Projects/cpp/Test/./a.out
  Reason: image not found
Abort trap: 6

知道我缺少什么吗?我尝试检查生成的 qmake Makefile 作为参考,但无法确定我需要什么。

【问题讨论】:

    标签: c++ qt makefile


    【解决方案1】:

    想通了!

    一切都在 LFLAGS 中。

    这是我更改 Makefile 以使其工作的方式:

    SOURCES = calculator.cpp
    
    INCPATH = -I. -I/usr/local/qt/5.9.1/clang_64/lib/QtWidgets.framework/Headers -I/usr/local/qt/5.9.1/clang_64/lib/QtGui.framework/Headers -I/usr/local/qt/5.9.1/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/AGL.framework/Headers -I/usr/local/qt/5.9.1/clang_64/mkspecs/macx-clang -F/usr/local/qt/5.9.1/clang_64/lib
    
    DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB
    
    LFLAGS = -stdlib=libc++ -headerpad_max_install_names  -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.10 -Wl,-rpath,@executable_path/Frameworks -Wl,-rpath,/usr/local/qt/5.9.1/clang_64/lib
    
    FRAMEWORK = -framework QtCore -framework QtGui -framework QtWidgets -framework OpenGL -framework DiskArbitration -framework IOKit -framework OpenGL -framework AGL
    
    all:
        g++ -std=c++11 $(LFLAGS) $(SOURCES) $(INCPATH) $(FRAMEWORK)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-07
      • 2013-12-18
      • 2017-05-06
      • 2016-05-24
      • 2017-04-20
      • 2016-05-29
      相关资源
      最近更新 更多