C++ 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用)-Qt Creator 3.3
好吧,我知道还有其他关于这个错误的帖子,但我似乎找不到一个能解决我问题的帖子。问题是,当我试图在Qt Creator中构建C++项目时,我得到两个错误:1)<代码>(S)未找到架构x8664 64 < /Code >,2)代码>链接器命令失败,退出代码1(使用-V查看调用)< /Code >。代码构建并运行良好,直到我尝试使用FFTW-3.3.4库实现FFT为止。完整的编译器输出为:C++ 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用)-Qt Creator 3.3,c++,qt-creator,linker-errors,C++,Qt Creator,Linker Errors,好吧,我知道还有其他关于这个错误的帖子,但我似乎找不到一个能解决我问题的帖子。问题是,当我试图在Qt Creator中构建C++项目时,我得到两个错误:1)(S)未找到架构x8664 64 < /Code >,2)代码>链接器命令失败,退出代码1(使用-V查看调用)< /Code >。代码构建并运行良好,直到我尝试使用FFTW-3.3.4库实现FFT为止。完整的编译器输出为: 14:55:10: Running steps for project RFdata... 14:55:10: Conf
14:55:10: Running steps for project RFdata...
14:55:10: Configuration unchanged, skipping qmake step.
14:55:10: Starting: "/usr/bin/make"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr /bin/clang++ -c -pipe -g -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDK s/MacOSX10.9.sdk -mmacosx-version-min=10.7 -Wall -W -fPIE -DQT_CORE_LIB - I../Qt/5.4/clang_64/mkspecs/macx-clang -I../RFdata -I../RFdata/fftw- 3.3.4/libbench2 -I../Qt/5.4/clang_64/lib/QtCore.framework/Versions/5/Headers -I. - I. -F/Users/Mike/Desktop/Qt/5.4/clang_64/lib -o main.o ../RFdata/main.cpp
../RFdata/main.cpp:93:22: warning: comparison of integers of different signs: 'long' and 'size_type' (aka 'unsigned long') [-Wsign-compare]
for (long i = 0; i < str.length(); ++i) //M:for loop that iterates through the length of the string and //replaces each occurance of a ch1 with ch2
~ ^ ~~~~~~~~~~~~
1 warning generated.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr /bin/clang++ -c -pipe -g -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDK s/MacOSX10.9.sdk -mmacosx-version-min=10.7 -Wall -W -fPIE -DQT_CORE_LIB - I../Qt/5.4/clang_64/mkspecs/macx-clang -I../RFdata -I../RFdata/fftw- 3.3.4/libbench2 -I../Qt/5.4/clang_64/lib/QtCore.framework/Versions/5/Headers -I. - I. -F/Users/Mike/Desktop/Qt/5.4/clang_64/lib -o display_vector.o ../RFdata/display_vector.cpp
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr /bin/clang++ -c -pipe -g -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDK s/MacOSX10.9.sdk -mmacosx-version-min=10.7 -Wall -W -fPIE -DQT_CORE_LIB - I../Qt/5.4/clang_64/mkspecs/macx-clang -I../RFdata -I../RFdata/fftw- 3.3.4/libbench2 -I../Qt/5.4/clang_64/lib/QtCore.framework/Versions/5/Headers -I. - I. -F/Users/Mike/Desktop/Qt/5.4/clang_64/lib -o convert_string.o ../RFdata/convert_string.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/De veloper/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.7 -Wl,- rpath,/Users/Mike/Desktop/Qt/5.4/clang_64/lib -o RFdata main.o display_vector.o convert_string.o -F/Users/Mike/Desktop/Qt/5.4/clang_64/lib - L/Users/Mike/Desktop/RFdata/fftw-3.3.4/libbench2/ -lbench2 -framework QtCore - framework DiskArbitration -framework IOKit
Undefined symbols for architecture x86_64:
"_fftw_cleanup", referenced from:
hilbert() in main.o
"_fftw_destroy_plan", referenced from:
hilbert() in main.o
"_fftw_execute", referenced from:
hilbert() in main.o
"_fftw_plan_dft_1d", referenced from:
hilbert() in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [RFdata] Error 1
14:55:11: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project RFdata (kit: Desktop Qt 5.4.0 clang 64bit)
When executing step "Make"
14:55:11: Elapsed time: 00:01.
<> P>所以,我猜这个问题,虽然我知道这是一个非常普遍的,可能是简单的问题,但是我如何在FMW-3.3.4库中成功地将我的C++项目中的QT创建者3.3连接到我的Mac(OSX?这让我发疯了 看起来您正在尝试将32位库链接到64位可执行文件。要么寻找64位库,要么将其编译为32位程序。这是有道理的,但是,我很难弄清楚如何做这两件事。我在mac电脑上,我可以找到64位和32位版本的windows,但每当我查看mac下载库时,只有一个选项。至于试图将其编译为32位程序,我在Qt creator 3.3中似乎无法做到这一点,除非我下载了32位版本的Qt 5.4,当我尝试这样做时,我遇到了同样的问题(mac只有一个下载选项,没有指定32或64)。。。你知道如何在mac电脑上实现这一点吗。快速查看一下,您必须将QT重建为32位。祝你好运谢谢你的帮助!我正要尝试你发布的链接,这时我找到了解决方案。最后做的是将
macx:LIBS+=-L$$PWD/fftw-3.3.4/libbench2/-lbench2
更改为macx:LIBS+=-L$$PWD/fftw-3.3.4/-lfftw3-lm
。由于我是初学者,我不确定这是否属实,但我认为我只是试图添加错误的库文件(libbench2)。虽然在整个过程中,我确实学到了很多关于32位和64位程序的知识:)
QT += core
QT -= gui
TARGET = RFdata
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp \
display_vector.cpp \
convert_string.cpp
HEADERS += \
display_vector.h \
convert_string.h
macx: LIBS += -L$$PWD/fftw-3.3.4/libbench2/ -lbench2
INCLUDEPATH += $$PWD/fftw-3.3.4/libbench2
DEPENDPATH += $$PWD/fftw-3.3.4/libbench2
macx: PRE_TARGETDEPS += $$PWD/fftw-3.3.4/libbench2/libbench2.a