在 armhf 上使用 cmake 在 qt 上的编译问题 "Syntax error: wird unexpected (expecting " ) " "
Compilation problem on armhf with cmake on qt "Syntax error: wird unexpected (expecting ")""
最近我对Qt的工作很感兴趣,我开始了一个项目,我需要交叉编译它。 在我的电脑上,一切似乎都很好,就像你在下面看到的那样,但在我同事的电脑上,我遇到了一些错误。我一直在寻找一些答案,但没有找到任何东西......
~/work/qt/malo_zelie/armhf_build >cmake ..
-- Configuring done
-- Generating done
-- Build files have been written to: malo_zelie/armhf_build
~/work/qt/malo_zelie/armhf_build >make
Scanning dependencies of target malo_zelie_automoc
[ 16%] Automatic moc, uic and rcc for target malo_zelie
Generating moc source malo_zelie_automoc.dir/moc_mainwindow_BMDIVWC5MAP5U5.cpp
Generating moc compilation malo_zelie_automoc.cpp
Generating ui header ui_mainwindow.h
[ 16%] Built target malo_zelie_automoc
[ 33%] Generating ../malo_zelie_fr_FR.ts
Scanning directory '/home/mael/work/qt/malo_zelie'...
Updating '../malo_zelie_fr_FR.ts'...
Found 1 source text(s) (0 new and 1 already existing)
Scanning dependencies of target malo_zelie
[ 50%] Building CXX object CMakeFiles/malo_zelie.dir/src/main.cpp.o
[ 66%] Building CXX object CMakeFiles/malo_zelie.dir/src/mainwindow.cpp.o
[ 83%] Building CXX object CMakeFiles/malo_zelie.dir/malo_zelie_automoc.cpp.o
[100%] Linking CXX executable malo_zelie
[100%] Built target malo_zelie
但是在我朋友的计算机上,这是我得到的:
:~/workspace/malo_zelie_qt/armhf_build$ cmake ..
-- Configuring done
-- Generating done
-- Build files have been written to: malo_zelie_qt/armhf_build
colin@debian:~/workspace/malo_zelie_qt/armhf_build$ make
[ 16%] Automatic moc, uic and rcc for target malo_zelie
Generating moc source malo_zelie_automoc.dir/moc_mainwindow_BMDIVWC5MAP5U5.cpp
/usr/lib/arm-linux-gnueabihf/qt5/bin/moc: 1: /usr/lib/arm-linux-gnueabihf/qt5/bin/moc: Syntax error: word unexpected (expecting ")")
AUTOGEN: error: process for /home/colin/workspace/malo_zelie_qt/armhf_build/malo_zelie_automoc.dir/moc_mainwindow_BMDIVWC5MAP5U5.cpp failed:
/usr/lib/arm-linux-gnueabihf/qt5/bin/moc: 1: /usr/lib/arm-linux-gnueabihf/qt5/bin/moc: Syntax error: word unexpected (expecting ")")
Generating moc compilation malo_zelie_automoc.cpp
Generating ui header ui_mainwindow.h
/usr/lib/arm-linux-gnueabihf/qt5/bin/uic: 1: /usr/lib/arm-linux-gnueabihf/qt5/bin/uic: Syntax error: word unexpected (expecting ")")
AUTOUIC: error: process for ui_mainwindow.h needed by
"/home/colin/workspace/malo_zelie_qt/src/mainwindow.cpp"
failed:
/usr/lib/arm-linux-gnueabihf/qt5/bin/uic: 1: /usr/lib/arm-linux-gnueabihf/qt5/bin/uic: Syntax error: word unexpected (expecting ")")
moc failed...
CMakeFiles/malo_zelie_automoc.dir/build.make:57 : la recette pour la cible « CMakeFiles/malo_zelie_automoc » a échouée
make[2]: [CMakeFiles/malo_zelie_automoc]
Erreur 1 CMakeFiles/Makefile2:104 : la recette pour la cible « CMakeFiles/malo_zelie_automoc.dir/all » a échouée make[1]: [CMakeFiles/malo_zelie_automoc.dir/all]
Erreur 2 Makefile:83 : la recette pour la cible « all » a échouée make: [all] Erreur 2
这是CmakeList.txt :
cmake_minimum_required(VERSION 3.5)
project(malo_zelie LANGUAGES CXX)
set( CMAKE_PREFIX_PATH "~/Qt/5.15.0" )
option( USE_CLANG "Use Clang compiler." OFF )
option( USE_LIBCPP "Use LLVM's libc++ instead of GNU's libstdc++ (requires clang)" OFF )
option( USE_ARMHF "use armhf compiler and linker." OFF)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# QtCreator supports the following variables for Android, which are identical to qmake Android variables.
# Check http://doc.qt.io/qt-5/deployment-android.html for more information.
# They need to be set before the find_package(Qt5 ...) call.
#if(ANDROID)
# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
# if (ANDROID_ABI STREQUAL "armeabi-v7a")
# set(ANDROID_EXTRA_LIBS
# ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libcrypto.so
# ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libssl.so)
# endif()
#endif()
if( USE_ARMHF )
set( CMAKE_FIND_ROOT_PATH "/usr/lib/arm-linux-gnueabihf/")
set( COMXENTEO "ComXenteo2-armhf")
set( CMAKE_LINKER "arm-linux-gnueabihf-ld")
set( CMAKE_CXX_COMPILER "arm-linux-gnueabihf-g++" )
set( CMAKE_C_COMPILER "arm-linux-gnueabihf-gcc" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FMAGS} -Wno-attributes")
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3" )
set( Qt5Core_DIR "/usr/lib/arm-linux-gnueabihf/cmake/Qt5Core" )
set( Qt5Gui_DIR "/usr/lib/arm-linux-gnueabihf/cmake/Qt5Gui" )
set( Qt5LinguistTools_DIR "/usr/lib/arm-linux-gnueabihf/cmake/Qt5LinguistTools" )
set( Qt5Widgets_DIR "/usr/lib/arm-linux-gnueabihf/cmake/Qt5Widgets" )
set( Qt5_DIR "/usr/lib/arm-linux-gnueabihf/cmake/Qt5" )
else()
set( CMAKE_FIND_ROOT_PATH "/usr/lib/x86_64-linux-gnu/")
set( Qt5Core_DIR "/usr/lib/x86_64-linux-gnu/cmake/Qt5Core" )
set( Qt5Gui_DIR "/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui" )
set( Qt5LinguistTools_DIR "/usr/lib/x86_64-linux-gnu/cmake/Qt5LinguistTools" )
set( Qt5Widgets_DIR "/usr/lib/x86_64-linux-gnu/cmake/Qt5Widgets" )
set( Qt5_DIR "/usr/lib/x86_64-linux-gnu/cmake/Qt5" )
set(COMXENTEO "ComXenteo2-x64")
if( USE_CLANG )
set( CMAKE_CXX_COMPILER "clang++" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weverything" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-padded" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-weak-vtables" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-c++98-compat -Wno-c++98-compat-pedantic" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-exit-time-destructors" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-global-constructors" )
if( USE_LIBCPP )
set( ${CMAKE_CXX_FLAGS} "${CMAKE_CXX_FLAGS} -stdlib=libc++" )
endif
endif()
endif()
find_package( Qt5 COMPONENTS Widgets LinguistTools REQUIRED)
set(TS_FILES malo_zelie_fr_FR.ts)
file( GLOB malo_zelie_src "src/*.cpp" "src/*.h" "src/*.ui" )
if(ANDROID)
add_library(malo_zelie SHARED
${malo_zelie_src}
${TS_FILES}
)
else()
add_executable(malo_zelie
${malo_zelie_src}
${TS_FILES}
)
endif()
set( EXT_LIBS
# ${sga_LIBRARIES}
${COMXENTEO}
)
set( EXT_INCLUDES
# ${sga_INCLUDE_DIRS}
)
set( EXT_COMP
# ${sga_CFLAGS_OTHER}
)
target_link_libraries( malo_zelie PRIVATE Qt5::Widgets ${EXT_LIBS} )
target_include_directories( malo_zelie PUBLIC src ${EXT_INCLUDES} )
target_compile_options( malo_zelie PUBLIC ${EXT_COMP} )
qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})()
有人知道吗?对不起,这个笨拙的帖子,这是我的第一个。
哦,就是这样,感谢 Frant,在我的电脑上安装了 qemu,所以我可以运行 arm 二进制文件,但在我同事的电脑上,qemu 没有安装,moc uic 和 rcc 调用是 arm 二进制文件,我应该在将来更改它,但现在我只是在他的计算机上安装了 qemu,一切正常, 感谢。
相关文章:
- "error: no matching function for call to"构造函数错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- C++错误:"error: int aaa::bbb is protected within this context"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- C++ "error: invalid use of void expression"
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 从不同目录执行时"symbol lookup error:",否则从构建目录执行时按预期工作
- 对象声明中的模板"error: expected expression"
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- OpenCV 3.4.1 error readNetFromTensorflow 无法在 cv::d nn::ReadProtoFromBinaryFile 中打开 .pb
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- 为什么我会"error: expected expression"?
- CMake Error at modules/videoio/cmake/detect_ffmpeg.cmake:16
- 如果两个静态库使用相同的另一个静态库,如何避免"LNK2005 Already Defined error"?
- 在 armhf 上使用 cmake 在 qt 上的编译问题 "Syntax error: wird unexpected (expecting " ) " "