[Moved] symbol(s) not found for architecture x86_64
-
Hi,
for some reason I'm having the same problem as calumcjr. I'm using Qt 4.7.3 on my Mac (OS X.6.7).
I tried to run my project from Qt Creator and from eclipse but I keep getting the above mentioned error message.Background: I need to implement a few functionalities into a given framework that wasn't created by myself.
As the framework is quite large, I think it's not useful to post it here. And as the above mentioned problem could be solved by modifying the pro-file I think that's where my problem might be as well.So here's my pro-file:
@#-------------------------------------------------Project created by QtCreator 2011-06-17T13:45:15
#-------------------------------------------------
QT += core gui
TARGET = Ueb03
TEMPLATE = app
DEPENDPATH += . src
INCLUDEPATH += . src
CONFIG -= app_bundle
CONFIG += x86_64
CONFIG -= i386
LIBS += -lssl -lcryptoHEADERS += src/Geometry.h
src/MainWindow.h
src/Model.h
src/MovingBox.h
src/RollingBall.h
src/RotatingCow.h
src/RotationWidget.h
SOURCES += src/Geometry.cpp
src/main.cpp
src/MainWindow.cpp
src/Model.cpp
src/MovingBox.cpp
src/RollingBall.cpp
src/RotatingCow.cpp
src/RotationWidget.cpp
@I made a few modifications according to the sampe pro file. Yet I get this error message:
error: symbol(s) not found for architecture x86_64If you need any further information, please let me know.
Thanks a lot in advance.
-
thisaintme, it's not clear in what step and which object file the architecture is missing. Please check those with
@
file name-of-file-or-lib
@it should print out all the architectures that are contained in your file.
First start with the lib you are linking to. You must have the same architectures (or less), but no more additional ones in your project.
-
Hi Volker,
here's what I get when running the file-command:
@Geometry.o: Mach-O 64-bit object x86_64
MainWindow.o: Mach-O 64-bit object x86_64
Model.o: Mach-O 64-bit object x86_64
MovingBox.o: Mach-O 64-bit object x86_64
RollingBall.o: Mach-O 64-bit object x86_64
RotatingCow.o: Mach-O 64-bit object x86_64
RotationWidget.o: Mach-O 64-bit object x86_64
main.o: Mach-O 64-bit object x86_64
moc_MainWindow.o: Mach-O 64-bit object x86_64
moc_MovingBox.o: Mach-O 64-bit object x86_64
moc_RollingBall.o: Mach-O 64-bit object x86_64
moc_RotatingCow.o: Mach-O 64-bit object x86_64
moc_RotationWidget.o: Mach-O 64-bit object x86_64@So it looks like the linked objects all are x86_64.
Any idea, what the problem might be? -
In my makefile the libs-line looks like this:
@LIBS = $(SUBLIBS) -F/Users/username/QtSDK/Simulator/Qt/gcc/lib -L/Users/username/QtSDK/Simulator/Qt/gcc/lib -framework QtGui -framework QtCore @
I don't know what $(SUBLIBS) stands for, but for the rest I think it should all be x86_64.
Anything else I should check? -
This is the output of the compiler pane:
@make: Entering directory `/Users/username/Documents/workspace/Qt/Ueb03-build-desktop'
/Users/username/QtSDK/Desktop/Qt/473/gcc/bin/qmake -spec ../../../../QtSDK/Desktop/Qt/473/gcc/mkspecs/macx-g++
<QMLJSDEBUGGER_PATH=/Users/username/QtSDK/Qt\ Creator.app/Contents/Resources/qml/qmljsdebugger -o Makefile ../Ueb03/Ueb03.pro
@
(End of part 1) -
(Part 2)
@make: Leaving directory/Users/username/Documents/workspace/Qt/Ueb03-build-desktop' make: Entering directory
/Users/username/Documents/workspace/Qt/Ueb03-build-desktop'
g++ -headerpad_max_install_names -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -o Ueb03.app/Contents/MacOS/Ueb03 Geometry.o main.o MainWindow.o Model.o MovingBox.o RollingBall.o RotatingCow.o RotationWidget.o moc_MainWindow.o moc_MovingBox.o moc_RollingBall.o moc_RotatingCow.o moc_RotationWidget.o -F/Users/username/QtSDK/Desktop/Qt/473/gcc/lib -L/Users/username/QtSDK/Desktop/Qt/473/gcc/lib -framework QtGui -framework QtCore@I don't know exactly where linking part comes but I don't see any files or libraries that are not x86_64...
-
This should probably work. I cannot see the external framework that you link to.
I never installed the SDK version of the Qt libs, so I don't know if those contain a x86_64 version. You might want to check the output of
@
lipo -info /Users/username/QtSDK/Desktop/Qt/473/gcc/lib/QtGui.framework/QtGui
lipo -info /Users/username/QtSDK/Desktop/Qt/473/gcc/lib/QtCore.framework/QtCore
@it should contain x86_64