• 12091阅读
  • 38回复

[原创]急啊!!在MAC 下安装QT一直编译不成功 [复制链接]

上一主题 下一主题
离线louis_some
 

只看楼主 倒序阅读 楼主  发表于: 2014-03-16
我的是MAC OS 10.9.2 ,Xcode 是5.0+的,然后下载安装了qt for mac 和 relese 库 之后,也配置了编译的路径等等,但运行例子的时候,一直有这个错误

dyld: Library not loaded: /work/build/______________________________PADDING______________________________/lib/QtWidgets.framework/Versions/5/QtWidgets
  Referenced from: /Users/louis/Qt5.2.1/5.2.1/clang_64/examples/widgets/mainwindows/build-application-Desktop-Release/application.app/Contents/MacOS/application
  Reason: image not found
程序异常结束。


很急啊。。。求助那个大哥遇到过的。。帮帮小弟吧,我是新手。。。
离线noidea

只看该作者 1楼 发表于: 2014-03-16
没找到framework, 把你的pro贴出来
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 2楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:没找到framework, 把你的pro贴出来 (2014-03-16 10:59) 

QT += widgets

HEADERS       = mainwindow.h
SOURCES       = main.cpp \
                mainwindow.cpp
#! [0]
RESOURCES     = application.qrc
#! [0]

# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/mainwindows/application
INSTALLS += target



这个就是了。。
离线noidea

只看该作者 3楼 发表于: 2014-03-16
在pro文件里边加上 下边试试看
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 4楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:在pro文件里边加上 下边试试看
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets (2014-03-16 11:16) 

不行。。。还是一样。。是不是我安装什么错误的?
离线noidea

只看该作者 5楼 发表于: 2014-03-16
你应该用的是Qt5.2.1的examples,我编译一下没有错误。
但是看你的pro文件,我怎么没看到examples里有这个文件? 你是那个例子?
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 6楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:你应该用的是Qt5.2.1的examples,我编译一下没有错误。
但是看你的pro文件,我怎么没看到examples里有这个文件? 你是那个例子? (2014-03-16 11:25) 

在欢迎页面里面的例子的第一个。。

你的也是MAC环境配置的么?成功了吗?XCode版本是哪个?
离线noidea

只看该作者 7楼 发表于: 2014-03-16
我看到那个application的例子了。
我的Mac和Xcode都是最新版本,Xcode5.1,MacOS X10.9.2

你检查一下你的compile output,你的问题应该是路径不对,找不到库。
或者你贴出来你的compile output内容。
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 8楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:我看到那个application的例子了。
我的Mac和Xcode都是最新版本,Xcode5.1,MacOS X10.9.2
你检查一下你的compile output,你的问题应该是路径不对,找不到库。
或者你贴出来你的compile output内容。 (2014-03-16 11:32) 

你指的是这个吗?

11:33:15: 为项目application执行步骤 ...
11:33:15: 配置没有改变, 跳过 qmake 步骤。
11:33:15: 正在启动 "/usr/bin/make"

make: Nothing to be done for `first'.
11:33:15: 进程"/usr/bin/make"正常退出。
11:33:15: Elapsed time: 00:00.


那顺便问问你,你有安装了那些软件了?布置QT的时候
离线noidea

只看该作者 9楼 发表于: 2014-03-16
不是这个,是你编译时候的输出。
1.issue 2. Search result 3....4...5...6...
第4个标签Compile Output。

我安装就是默认安装的。

或者你执行下边这个命令
$otool -L  /Users/louis/Qt5.2.1/5.2.1/clang_64/examples/widgets/mainwindows/build-application-Desktop-Release/application.app/Contents/MacOS/application

然后告诉我结果。
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 10楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:不是这个,是你编译时候的输出。
1.issue 2. Search result 3....4...5...6...
第4个标签Compile Output。
我安装就是默认安装的。
....... (2014-03-16 11:40)

-L: command not found


那你有安装哪些软件呢?或者你能加一下我QQ么。。。我真的很急呀。。。
离线louis_some

只看该作者 11楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:
不是这个,是你编译时候的输出。
1.issue 2. Search result 3....4...5...6...
第4个标签Compile Output。
我安装就是默认安装的。
.......




就是第四个了。。
离线noidea

只看该作者 12楼 发表于: 2014-03-16
那看来你的command line 没装, 你需要安装一个Xcode附带的command line tools.

执行下边命令
xcode-select -p

如果结果不是 /Library/Developer/CommandLineTools
那你就安装一个吧。

PS:我不用QQ哈
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 13楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:那看来你的command line 没装, 你需要安装一个Xcode附带的command line tools.
执行下边命令
xcode-select -p
....... (2014-03-16 11:48) 

我的结果是这个:/Applications/Xcode.app/Contents/Developer

但它5.0以上版本不是已经自带的了么?在locals里面已经有了的哦,怎样自己装呢?


那你用什么通信工具呢。。。
离线noidea

只看该作者 14楼 发表于: 2014-03-16
还一种安装方法

你可以打开Xcode,在菜单里边,你找到‘Xcode’-> Open Developer tool -> more developer tools, 他会转向到Apple developer的网页,你需要用你的账号登陆,然后就可以下载command line tool 了。
5条评分好评度+1贡献值+2金钱+10威望+1
cid3r 贡献值 +1 辛苦辛苦了 2014-03-20
louis_some 好评度 +1 非常感谢你的帮忙。。。 2014-03-16
louis_some 贡献值 +1 非常感谢你的帮忙。。。 2014-03-16
louis_some 威望 +1 非常感谢你的帮忙。。。 2014-03-16
louis_some 金钱 +10 非常感谢你的帮忙。。。 2014-03-16
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 15楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:还一种安装方法
你可以打开Xcode,在菜单里边,你找到‘Xcode’-> Open Developer tool -> more developer tools, 他会转向到Apple developer的网页,你需要用你的账号登陆,然后就可以下载command line tool 了。 (2014-03-16 11:56) 

哦哦,我先试试哈,非常感谢你的帮助了。。现在在安装中了。。原来5.0版本以上要手动安装的。。不再出现在download那里。。
离线noidea

只看该作者 16楼 发表于: 2014-03-16
回 louis_some 的帖子
louis_some:

[图片]
就是第四个了。。
.......

那你需要重新编译,给我编译过程,类似如下
  1. /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -O2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -Wall -W -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../../mkspecs/macx-clang -I../../mainwindows/application -I../../../../lib/QtWidgets.framework/Versions/5/Headers -I../../../../lib/Qt.....

talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 17楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:那你需要重新编译,给我编译过程,类似如下
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -O2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk  .. (2014-03-16 11:59) 

12:03:35: 为项目application执行步骤 ...
12:03:35: 配置没有改变, 跳过 qmake 步骤。
12:03:35: 正在启动 "/usr/bin/make"

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -O2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -Wall -W -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../../mkspecs/macx-clang -I../application -I../../../../lib/QtWidgets.framework/Versions/5/Headers -I../../../../lib/QtGui.framework/Versions/5/Headers -I../../../../lib/QtCore.framework/Versions/5/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -F/Users/louis/Qt5.2.1/5.2.1/clang_64/lib -o main.o ../application/main.cpp
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -headerpad_max_install_names -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -o application.app/Contents/MacOS/application main.o mainwindow.o qrc_application.o moc_mainwindow.o   -F/Users/louis/Qt5.2.1/5.2.1/clang_64/lib -framework QtWidgets -framework QtGui -framework QtCore -framework OpenGL -framework AGL
12:03:36: 进程"/usr/bin/make"正常退出。
12:03:36: Elapsed time: 00:01.


我已经下载安装完那个commend tool了,但好像没什么东西变化,只是说我安装完了。。
离线noidea

只看该作者 18楼 发表于: 2014-03-16
在执行以下
$otool -L  /Users/louis/Qt5.2.1/5.2.1/clang_64/examples/widgets/mainwindows/build-application-Desktop-Release/application.app/Contents/MacOS/application
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 19楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:在执行以下
$otool -L  /Users/louis/Qt5.2.1/5.2.1/clang_64/examples/widgets/mainwindows/build-application-Desktop-Release/application.app/Contents/MacOS/application (2014-03-16 12:09) 

-bash: -L: command not found

还是这个东西提示。。。
离线noidea

只看该作者 20楼 发表于: 2014-03-16
没有前边那个$啊
命令是 otool -L
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 21楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:没有前边那个$啊
命令是 otool -L (2014-03-16 12:12) 

/Users/louis/Qt5.2.1/5.2.1/clang_64/examples/widgets/mainwindows/build-application-Desktop-Release/application.app/Contents/MacOS/application:
    /work/build/______________________________PADDING______________________________/lib/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.2.0, current version 5.2.1)
    /work/build/______________________________PADDING______________________________/lib/QtGui.framework/Versions/5/QtGui (compatibility version 5.2.0, current version 5.2.1)
    /work/build/______________________________PADDING______________________________/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.2.0, current version 5.2.1)
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

离线noidea

只看该作者 22楼 发表于: 2014-03-16
问题在这里;
你编译时候用的库是 /Users/louis/Qt5.2.1/5.2.1/clang_64/lib, 你执行的时候用的库是    /work/build/______________________________PADDING______________________________/lib/

你这个目录我不知道你是不是挂在其他的磁盘,看起来很奇怪 ==>  /work/build/______________________________PADDING______________________________/lib/。

/Users/louis/Qt5.2.1/5.2.1/clang_64/lib 这里边的库是对的,你可以进去看看确认一下,里边有QWidgets.framework, 另外一个路径应该是没有的。

你先确认一下。
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 23楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:问题在这里;
你编译时候用的库是 /Users/louis/Qt5.2.1/5.2.1/clang_64/lib, 你执行的时候用的库是    /work/build/______________________________PADDING______________________________/lib/
你这个目录我不知道你是不是挂在其他的磁盘,看起来很奇怪 = .. (2014-03-16 12:22) 

嗯嗯,里面有很多的库,其中包括了QtWidgets.framework这个东西。。。
离线noidea

只看该作者 24楼 发表于: 2014-03-16


要么简单起见,你就做个链接
  1. ln -s /Users/louis/Qt5.2.1/5.2.1/clang_64/lib/ /work/build/______________________________PADDING______________________________/lib/




要么你就手动修改application(bin)的连接符号,类似如下方法
  1. install_name_tool -change /work/build/______________________________PADDING______________________________/lib/QtWidgets.framework/Versions/5/QtWidgets /Users/louis/Qt5.2.1/5.2.1/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets /Users/louis/Qt5.2.1/5.2.1/clang_64/examples/widgets/mainwindows/build-application-Desktop-Release/application.app/Contents/MacOS/application

talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 25楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:问题在这里;
你编译时候用的库是 /Users/louis/Qt5.2.1/5.2.1/clang_64/lib, 你执行的时候用的库是    /work/build/______________________________PADDING______________________________/lib/
你这个目录我不知道你是不是挂在其他的磁盘,看起来很奇怪 = .. (2014-03-16 12:22) 

那怎样改变那个执行的库的路径呢?我也去不到那个目录。。。
离线louis_some

只看该作者 26楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:要么简单起见,你就做个链接
ln -s /Users/louis/Qt5.2.1/5.2.1/clang_64/lib/ /work/build/______________________________PADDING______________________________/lib/
....... (2014-03-16 12:29) 

哦哦,我改了一个了,其他两个也是差不多这样改?
离线noidea

只看该作者 27楼 发表于: 2014-03-16
回 louis_some 的帖子
louis_some:那怎样改变那个执行的库的路径呢?我也去不到那个目录。。。 (2014-03-16 12:29) 

如果你/work 存在,就不需要了。这个命令意思是将Qt的库在/work那个里边做个链接。包括Qt所有的库。

另外一个方法,你就需要一个个链接了,这种方法通常在部署时候使用。如果可以用第一个方法,就就简单了。
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 28楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:要么简单起见,你就做个链接
ln -s /Users/louis/Qt5.2.1/5.2.1/clang_64/lib/ /work/build/______________________________PADDING______________________________/lib/
....... (2014-03-16 12:29) 

/Users/louis/Qt5.2.1/5.2.1/clang_64/examples/widgets/mainwindows/build-application-Desktop-Release/application.app/Contents/MacOS/application:
    /Users/louis/Qt5.2.1/5.2.1/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.2.0, current version 5.2.1)
    /Users/louis/Qt5.2.1/5.2.1/clang_64/lib/QtGui.framework/Versions/5/QtGui (compatibility version 5.2.0, current version 5.2.1)
    /Users/louis/Qt5.2.1/5.2.1/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.2.0, current version 5.2.1)
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)


现在变成这样了,可以了么?
离线louis_some

只看该作者 29楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:如果你/work 存在,就不需要了。这个命令意思是将Qt的库在/work那个里边做个链接。包括Qt所有的库。
另外一个方法,你就需要一个个链接了,这种方法通常在部署时候使用。如果可以用第一个方法,就就简单了。 (2014-03-16 12:38) 

/work是不存在的。。。

现在编译还是那样子。。。
dyld: Library not loaded: /work/build/______________________________PADDING______________________________/lib/QtWidgets.framework/Versions/5/QtWidgets
  Referenced from: /Users/louis/Qt5.2.1/5.2.1/clang_64/examples/widgets/mainwindows/build-application-Desktop-Release/application.app/Contents/MacOS/application
  Reason: image not found
离线noidea

只看该作者 30楼 发表于: 2014-03-16
回 louis_some 的帖子
louis_some:/work是不存在的。。。
现在编译还是那样子。。。
dyld: Library not loaded: /work/build/______________________________PADDING______________________________/lib/QtWidgets.framework/Versions/5/QtWidgets
....... (2014-03-16 12:42)

那你在你的Qt Project设置里边(QtCreator左边第五个),你看看你里边对Lib的链接的路径那些地方设置到/work那个地方了,然后改正它。

还一个你在debug底下先做,我看你现在在release下的。
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 31楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:那你在你的Qt Project设置里边(QtCreator左边第五个),你看看你里边对Lib的链接的路径那些地方设置到/work那个地方了,然后改正它。
还一个你在debug底下先做,我看你现在在release下的。
(2014-03-16 13:19)

我找不到跟/work有相关的哦。。。。
离线noidea

只看该作者 32楼 发表于: 2014-03-16
那你在pro文件里边加入下边一行试试看

LIB +=  /Users/louis/Qt5.2.1/5.2.1/clang_64/lib

talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 33楼 发表于: 2014-03-16
不如你说说你安装了什么的,我重新安装一遍吧。。。我想哭了。。。

内容来自[短消息]
离线noidea

只看该作者 34楼 发表于: 2014-03-16
我啥也没安装多余的,就是从Qt官网下载,然后默认安装。
talk in code
Qt5.2.1 + MacOSX10.9
离线louis_some

只看该作者 35楼 发表于: 2014-03-16
回 noidea 的帖子
noidea:那你在pro文件里边加入下边一行试试看
LIB +=  /Users/louis/Qt5.2.1/5.2.1/clang_64/lib
 (2014-03-16 14:05) 

还是一样。。。
离线noidea

只看该作者 36楼 发表于: 2014-03-16
我觉得你的环境变量可能受到什么干扰了,你应该知道/work这个目录是怎么出现的。
或者你手动编译一下你的qro文件,然后你查看一下你的Makefile文件里边指向的LIB是什么地方。
我觉得这个更多和你的Mac相关,或是你安装的时候里边本来就有旧的设置造成干扰了。
talk in code
Qt5.2.1 + MacOSX10.9

只看该作者 37楼 发表于: 2015-11-13
回 noidea 的帖子
noidea:还一种安装方法
你可以打开Xcode,在菜单里边,你找到‘Xcode’-> Open Developer tool -> more developer tools, 他会转向到Apple developer的网页,你需要用你的账号登陆,然后就可以下载command line tool 了。 (2014-03-16 11:56) 

你好,我用的是Xcode6.4,应该是已经下了的,然后我现在把command line tool for7.1下载了,安装了,但是接下去要怎么修改xcode->preference->location下的command line tools 的指向呢?

只看该作者 38楼 发表于: 2015-11-13
回 noidea 的帖子
noidea:还一种安装方法
你可以打开Xcode,在菜单里边,你找到‘Xcode’-> Open Developer tool -> more developer tools, 他会转向到Apple developer的网页,你需要用你的账号登陆,然后就可以下载command line tool 了。 (2014-03-16 11:56) 

我xcode-select-p和他的情况, 但xcode->preference->location下是有版本的,对应6.4的,我额外下的7.1也提示安装好了,可是我不清楚装的目录,是否有影响。我现在工程编译输出提示:
the following command failed
   Ld Debug-iphonesimulator/xxx.app/xxx normal i386
错误提示就是linker command failed,xcode build failed
我引用了第三方库,现在搞不清楚是什么原因引起了。
快速回复
限100 字节
 
上一个 下一个