我已经安装了QtCreator 2.7.2,但是当我尝试编译包含QApplication的代码时,它会给出错误:Error QApplication:没有这样的文件或目录。
它可以顺利地编译教程代码“记事本”,我可以在/usr/include/ It 4/QtGui/ QApplication中找到QApplication。
下面是我的代码:#include #include "framework/vision_app.h“
int main(int argc, char** argv)
{
QApplication qapp(argc, argv);
VisionApp vapp;
if (vapp.init(argc, argv))
{
return qapp.exec();
}
else
{
return 1;
}
}更多的是,我没有任何.pro文件。我使用cmake来打包我的代码。
这是我的首席执行官:
cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
# Set the build type. Options are:
# Coverage : w/ debug symbols, w/o optimization, w/ code-coverage
# Debug : w/ debug symbols, w/o optimization
# Release : w/o debug symbols, w/ optimization
# RelWithDebInfo : w/ debug symbols, w/ optimization
# MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries
#set(ROS_BUILD_TYPE RelWithDebInfo)
rosbuild_init()
rosbuild_add_boost_directories()
find_package(OpenCV 2.3 REQUIRED)
if(OpenCV_FOUND)
message(STATUS "OpenCV include: ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV libs: ${OpenCV_LIBS}")
include_directories(${OpenCV_INCLUDE_DIRS})
else(OpenCV_FOUND)
message(SEND_ERROR "OpenCV not found!!")
endif()
# Qt4 requirements
include_directories(${CMAKE_CURRENT_BINARY_DIR})
set(QT_USE_QTOPENGL TRUE)
find_package(OpenGL REQUIRED)
message (STATUS "OpenGL_found:" ${OPENGL_FOUND})
find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
add_definitions(${QT_DEFINITIONS})
add_definitions(-DQT_NO_KEYWORDS)
#set the default path for built executables to the "bin" directory
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#set the default path for built libraries to the "lib" directory
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#uncomment if you have defined messages
#rosbuild_genmsg()
#uncomment if you have defined services
#rosbuild_gensrv()
include_directories(${PROJECT_SOURCE_DIR}/src)
include_directories(${PROJECT_SOURCE_DIR}/src/gui)
set(we_vision_HDRS src/framework/vision_app.h
src/gui/main_window.h
)
set(we_vision_SRCS src/vision_node_qt.cpp
src/framework/vision_app.cpp
src/gui/main_window.cpp
)
set(we_vision_UIS res/main_window.ui)
QT4_WRAP_CPP(we_vision_HDRS_MOC ${we_vision_HDRS})
QT4_WRAP_UI(we_vision_UI_HDRS ${we_vision_UIS})
rosbuild_add_executable(vision_node_qt ${we_vision_SRCS}
${we_vision_HDRS_MOC}
${we_vision_UI_HDRS}
)
target_link_libraries(vision_node_qt ${OpenCV_LIBS} ${QT_LIBRARIES} ${OPENGL_LIBRARIES})
rosbuild_link_boost(vision_node_qt thread filesystem system)有人能帮我吗?
发布于 2013-08-24 12:25:42
您可能不会相信,但我刚刚在一个非常老的项目中遇到了与您所遇到的问题完全相同的问题: Error QApplication:没有这样的文件或目录
我所发现的:我向我的CMakeLists.txt添加了消息(${CMakeLists.txt}),正如我提议的那样。这揭示了一些非常有趣的东西:我的所有Qt包括指向一个旧的QT4.8.2,它不再存在于我的机器上。即使我添加了一个新的工具包并运行了CMake,它也没有更新CMakeCache.txt。该工具包与我最近的Qt 4.8.5连接,但cmake“找到”了Qt4.8.2。我通过删除旧的CMakeCache.txt解决了我的问题
当QtCreator没有找到CMakeCache.txt时,它创建了自己的。但不是我的旧的,过时的,而是在构建文件夹中。因此,也许这就是命令行工作的原因,而不是QtCreator:有两个不同的QMakeCache.txt文件。在命令行上,您使用正确的命令行,QtCreator使用自己的过时命令。
发布于 2013-08-13 05:34:49
我见过几次include_directories()。我从未尝试过这样做,所以我不知道您是以这种方式添加到包含路径,还是只是一次又一次地重写路径。
尝试:
include_directories(
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/src/gui
${QT_INCLUDES}
${CMAKE_CURRENT_BINARY_DIR}
#more includes if necessary
)特别是在QT_INCLUDES中添加${ include_directories }。
发布于 2017-12-18 10:00:04
下面的命令(在add_executable之后)为我完成了这个任务:
qt5_use_modules(${PROJECT_NAME} Widgets)https://stackoverflow.com/questions/18198578
复制相似问题