[QT][?] Found unsuitable Qt version "5.0.2"from/usr/bin/qmake, this code requires Qt 4.x
CMake Error at/usr/share/cmake-2.8/Modules/FindQt4.cmake:1193 (MESSAGE):
Found unsuitable Qt version "5.0.2"from/usr/bin/qmake, this code requires Qt 4.x
Call Stack (most recent call first): ros_tutorials-hydro-devel/turtlesim/CMakeLists.txt:6 (find_package)
다음 명령을 실행합니다.
sudo apt-get install qt4-default
The following packages will be REMOVED: qt5-default The following NEW packages will be installed: qt4-default sudo apt-get install qt5-default
2. usr/bin/ld: cannot open output file test: Is a directory
프롬프트 오류
/usr/bin/ld: cannot open output file test: Is a directory collect2: ld returned 1 exit status
폴더 이름
SET(main_src_SOURCES ${treebot_SOURCE_DIR}/main_src/mainwindow.cpp
${treebot_SOURCE_DIR}/main_src/serialport.cpp
${treebot_SOURCE_DIR}/main_src/util.cpp
${treebot_SOURCE_DIR}/main_src/slidervelocity.cpp
)
SET(main_src_HEADERS ${treebot_SOURCE_DIR}/main_src/mainwindow.h
${treebot_SOURCE_DIR}/main_src/serialport.h
${treebot_SOURCE_DIR}/main_src/treerobotconstant.h
${treebot_SOURCE_DIR}/main_src/slidervelocity.h
${treebot_SOURCE_DIR}/main_src/util.h
)
QT5_WRAP_CPP(main_src_HEADERS_MOC ${main_src_HEADERS})
QT5_WRAP_CPP 시 컴파일 경로build에서main 생성src 폴더에 해당하는 cmake 캐시를 저장합니다.나는 또 이런 실행 파일을 생성하려면mainsrc ;같은 이름을 만들어서 실행 파일을 생성할 수 없음mainsrc.
add_executable(main_src ${treebot_SOURCE_DIR}/main_src/main.cpp
# ${treebot_SOURCE_DIR}/qrslam/CameraEstimation.cpp
# ${treebot_SOURCE_DIR}/qrslam/CameraEstimation.h
${main_src_SOURCES} ${main_src_HEADERS_MOC} ${main_src_HEADERS} ${main_src_UI_HEADERS}
)
TARGET_LINK_LIBRARIES(main_src ${Qt5Core_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5SerialPort_LIBRARIES}
CameraEstimation
)
해결 방법:
1).컴파일 경로 경로 설정하기;
: /bin
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
2). 실행 파일 이름을 변경합니다.
add_executable(treebot ${treebot_SOURCE_DIR}/main_src/main.cpp
# ${treebot_SOURCE_DIR}/qrslam/CameraEstimation.cpp
# ${treebot_SOURCE_DIR}/qrslam/CameraEstimation.h
${main_src_SOURCES} ${main_src_HEADERS_MOC} ${main_src_HEADERS} ${main_src_UI_HEADERS}
)
TARGET_LINK_LIBRARIES(treebot ${Qt5Core_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5SerialPort_LIBRARIES}
CameraEstimation
)
3. qt5_wrap_ui에서 생성된 헤더 파일 uimainwindow.h에서 #include "slidervelocity.h"파일에 오류가 발생했습니다.
#CMakeLists.txt
qt5_wrap_ui(main_src_UI_HEADERS ${treebot_SOURCE_DIR}/main_src/mainwindow.ui)
<span style="color:#be1414;">//ui_mainwindow.h</span>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QWidget>
#include "slidervelocity.h"
문제 원인: 주로 cmake가 생성한 경로가build, 즉 qt5wrap_ui 명령으로 생성된 파일
ui_mainwindow.h는build에서,slidervelocity에서.h는mainsrc 폴더 아래.
해결 방법:
1) 직접 변경 uimainwindow.h의include 설명
#include "../main_src/slidervelocity.h"
이런 방식은 비교적 어리석고 cmakelists의 형식을 통해 완성하고자 한다.2) cmakelists에 파일 경로 포함
include_directories(${treebot_SOURCE_DIR}/main_src)
<span style="color:#be1414;">ui_mainwindow.h</span>
#include "slidervelocity.h"
3)변경qt5wrap_ii에서 파일을 생성하는 경로입니다. 이 경로를 생성하는slidervelocity입니다.h
ui_mainwindow.h 파일 위치에서mainsrc, 및
slidervelocity.h는 같은 폴더에 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.