Macos Qt5应用程序在Linux和Windows上编译,但在Mac OS X上出现了隐秘的错误

Macos Qt5应用程序在Linux和Windows上编译,但在Mac OS X上出现了隐秘的错误,macos,qt,qt5,Macos,Qt,Qt5,我在一个小型的开源pc定时器项目上工作。我很想让我的客户在OSX上工作,但我甚至可以让它启动!我安装了xcode和带有qtcreator的qt5 sdk。编译时,我会收到以下警告,但二进制文件会编译: /Users/kylehall/Documents/Libki/main.cpp:25: In file included from ../Libki/main.cpp:25: /Users/kylehall/Documents/Libki/timerwindow.h:20: warning:

我在一个小型的开源pc定时器项目上工作。我很想让我的客户在OSX上工作,但我甚至可以让它启动!我安装了xcode和带有qtcreator的qt5 sdk。编译时,我会收到以下警告,但二进制文件会编译:

/Users/kylehall/Documents/Libki/main.cpp:25: In file included from ../Libki/main.cpp:25:

/Users/kylehall/Documents/Libki/timerwindow.h:20: warning: 'TIMERWINDOW_H' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
#ifndef TIMERWINDOW_H
        ^~~~~~~~~~~~~

/Users/kylehall/Documents/Libki/timerwindow.h:21: 'LOGINWINDOW_H' is defined here; did you mean 'TIMERWINDOW_H'?
#define LOGINWINDOW_H
        ^~~~~~~~~~~~~
        TIMERWINDOW_H

/Users/kylehall/Documents/Libki/timerwindow.cpp:21: In file included from ../Libki/timerwindow.cpp:21:

/Users/kylehall/Documents/Libki/timerwindow.h:20: warning: 'TIMERWINDOW_H' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
#ifndef TIMERWINDOW_H
        ^~~~~~~~~~~~~

/Users/kylehall/Documents/Libki/timerwindow.h:21: 'LOGINWINDOW_H' is defined here; did you mean 'TIMERWINDOW_H'?
#define LOGINWINDOW_H
        ^~~~~~~~~~~~~
        TIMERWINDOW_H

/Users/kylehall/Documents/build-Libki-Desktop_Qt_5_2_1_clang_64bit-Debug/moc_timerwindow.cpp:9: In file included from moc_timerwindow.cpp:9:

/Users/kylehall/Documents/Libki/timerwindow.h:20: warning: 'TIMERWINDOW_H' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
#ifndef TIMERWINDOW_H
        ^~~~~~~~~~~~~

/Users/kylehall/Documents/Libki/timerwindow.h:21: 'LOGINWINDOW_H' is defined here; did you mean 'TIMERWINDOW_H'?
#define LOGINWINDOW_H
        ^~~~~~~~~~~~~
        TIMERWINDOW_H
当我尝试运行二进制文件时,出现以下错误:

dyld: Library not loaded: /work/build/______________________________PADDING______________________________/lib/QtPositioning.framework/Versions/5/QtPositioning
  Referenced from: /Users/kylehall/Documents/build-Libki-Desktop_Qt_5_2_1_clang_64bit-Debug/libkiclient.app/Contents/MacOS/libkiclient
  Reason: image not found
Debugging has finished
在这一点上,我甚至不知道从哪里开始这样一个神秘的错误。任何建议都很好!您可以从

中获取代码并尝试自己编译它,这似乎非常清楚:

警告:“TIMERWINDOW_H”在此处用作标题保护,后跟#定义不同的宏[-Wheader-guard]

因此,你必须:

#ifndef TIMERWINDOW_H
#define LOGINWINDOW_H

复制粘贴错误,我想说…

timerwindow的第21行。h@hexa我不明白你在说什么。我是说你是正确的,错误就在这句话里。他提供了代码的链接。谢谢你的提示。我解决了这个问题,不再出现任何构建错误。但是,当我尝试运行应用程序时,仍然会出现错误。有什么想法吗?@Kyle使用
otool-L
查看它使用了哪些库。然后,您可以设置
$DYLD\u LIBRARY\u PATH
或使用
安装\u name\u工具
。该错误表示生成过程尚未修复可执行文件中的库路径。
填充
允许通过对可执行文件进行二进制修补来修复路径。尝试删除卷影生成目录,然后再次生成项目。您的构建环境可能会有点混乱。