Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake-找不到文件_Cmake - Fatal编程技术网

CMake-找不到文件

CMake-找不到文件,cmake,Cmake,我正在尝试使用CMake创建我的解决方案。这是我第一次,我从一些简单的事情开始 我制作了一个文本文件(CMakeLists.txt)并在CMake中使用它。我可以“配置”而不出错,但在尝试生成时出错: CMake Error at CMakeLists.txt:75 (ADD_EXECUTABLE): Cannot find source file: ./source/server/server.hpp Tried extensions .c .C .c++ .cc .cpp

我正在尝试使用CMake创建我的解决方案。这是我第一次,我从一些简单的事情开始

我制作了一个文本文件(CMakeLists.txt)并在CMake中使用它。我可以“配置”而不出错,但在尝试生成时出错:

CMake Error at CMakeLists.txt:75 (ADD_EXECUTABLE):
  Cannot find source file:

    ./source/server/server.hpp

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx
这是我的文件的路径:

\QTCP_Connection\source\server (contain server.cpp and server.hpp)
\QTCP_Connection\source\qtcp   (contain main.cpp)
\QTCP_Connection\source\libs   (contain singleton_holder.hpp and stdafx.hpp and stdafx.cpp and targetver.hpp)
这是我的CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.6)
PROJECT(QTCP_Connection)
FIND_PACKAGE(Qt4 REQUIRED)

INCLUDE(${QT_USE_FILE} )
ADD_DEFINITIONS(${QT_DEFINITIONS})
ADD_DEFINITIONS(-DUNICODE)
ADD_DEFINITIONS(-DQT_PLUGIN)
ADD_DEFINITIONS(-DQT_SHARED)
ADD_DEFINITIONS(-DQT_DLL)
ADD_DEFINITIONS(-DQT_LARGEFILE_SUPPORT)
ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)

SET(QT_DONT_USE_QTGUI TRUE)

SET(QTCP_PROJECT_DIR .)
SET(QTCP_QT_DIR $ENV{SEPANTA_QT_DIR})
SET(QTCP_BOOST_DIR $ENV{SEPANTA_BOOST_DIR})
SET(QTCP_PYTHON_DIR $ENV{SEPANTA_PYTHON_DIR})
SET(QTCP_XFS_DIR $ENV{XFS_DIR})
SET(QTCP_LOGGER_DIR $ENV{SEPANTA_LOGGER_DIR})

SET(DEVICE_MANAGER_IMPL_DIR device-manager)
SET(DEVICES_BASE_DIR ../../devices)
SET(DEVICES_IMPL_DIR devices)

SET(QTCP_DIR ${QTCP_PROJECT_DIR}/source/qtcp)
SET(SERVER_DIR ${QTCP_PROJECT_DIR}/source/server)
SET(LIBS_DIR ${QTCP_PROJECT_DIR}/source/libs)

INCLUDE_DIRECTORIES(
    ${QTCP_PROJECT_DIR}/source
    ${QTCP_QT_DIR}/include
    ${QTCP_QT_DIR}/include/QtCore
    ${QTCP_BOOST_DIR}/include/boost-1_50
    ${QTCP_LOGGER_DIR}/include
    ${QTCP_PYTHON_DIR}/include
)

SET(QT_HEADERS
    ${SERVER_DIR}/server.hpp
)

QT4_WRAP_CPP(QT_HEADERS_MOC ${QT_HEADERS} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)

SET(QTCP_FILES
    ${QTCP_PROJECT_DIR}/source/qtcp/main.cpp
)

SET(SERVER_FILES
    ${SERVER_DIR}/server.hpp
    ${SERVER_DIR}/server.cpp
)   

SET(LIBS_FILES
    ${LIBS_DIR}/singleton_holder.hpp
    ${LIBS_DIR}/stdafx.cpp
    ${LIBS_DIR}/stdafx.hpp
    ${LIBS_DIR}/targetver.hpp
)

LINK_DIRECTORIES(
    ${QTCP_QT_DIR}/lib
    ${QTCP_BOOST_DIR}/lib
    ${QTCP_PYTHON_DIR}/libs
    ${QTCP_LOGGER_DIR}/lib
    ${QTCP_XFS_DIR}/XFS_WINCOR_4.1
    ${QTCP_XFS_DIR}/XFS_WINCOR_4.1/LIB)

SET(XFS_LIBS
    MSXFS
    xfs_conf
    SSIDLL)

ADD_EXECUTABLE(QTCP_Connection
    ${QT_HEADERS_MOC}
    ${QTCP_FILES}
    ${SERVER_FILES}
    ${LIBS_FILES}
)

source_group("moc_generated" FILES ${QT_HEADERS_MOC})

source_group("source\\qtcp"   FILES ${QTCP_FILES})
source_group("source\\server" FILES ${SERVER_FILES})
source_group("source\\libs"   FILES ${LIBS_FILES})


TARGET_LINK_LIBRARIES(QTCP_Connection
    #${QT_LIBRARIES}
    ${QT_QTCORE_LIBRARY}
    ${QT_QTNETWORK_LIBRARY}
    ${QT_QTSQL_LIBRARY}
    ${XFS_LIBS}
    debug log4cplusUD.lib
    optimized log4cplusU.lib
)

set_target_properties(QTCP_Connection PROPERTIES COMPILE_FLAGS "/W2 /Zc:wchar_t-")
set_target_properties(QTCP_Connection PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")

你能告诉我我做错了什么吗?

这句话似乎有问题:

SET(QTCP_PROJECT_DIR .)
目录
将指向正在运行的cmake进程的工作目录,而不是CMakeLists文件的目录

相反,你应该使用

SET(QTCP_PROJECT_DIR ${PROJECT_SOURCE_DIR})
有关详细信息,请参阅有关该变量的文档

请注意,如果不确定某个变量指向什么,可以使用执行一些简单的printf调试:

message("PROJECT_SOURCE_DIR points to " ${PROJECT_SOURCE_DIR})

即使“SET(QTCP_PROJECT_DIR${PROJECT_SOURCE_DIR})”也显示了正确的路径,我仍然有同样的问题。PROJECT_SOURCE_DIR指向D:/SOURCE Code/QTCP_ConnectionI使用message命令查看目录cmake中的文件,但仍然正常。消息(“服务器文件指向”${SERVER\u FILES})--->SERVER\u文件指向D:/Source Code/QTCP\u Connection/Source/SERVER/SERVER.hpp D:/Source Code/QTCP\u Connection/Source/SERVER/SERVER。cpp@MeysamHashemi能否尝试删除生成文件夹中的
cmakcache.txt
,然后再次运行它。同样,CMake给出的错误现在看起来应该不同了。你能给出新的错误消息吗?我删除了我的CMakeLists.txt,并用新的名称创建了一个新的,它工作正常。有点奇怪,但是提示是thx;)