如何解决main.cpp.obj所需的main.cpp丢失并且没有已知的规则可以实现-带有cmake和Visual Studio的Hello World无法构建
我正在尝试使用Cmake / Clang作为构建系统并使用Visual Studio 2017 Professional来启动并运行开发环境。
我制作了一个简单的hello world main.cpp及其随附的CMakeLists.txt。我在Linux系统上对其进行了测试,它可以正常运行。
我使用Visual Studio 2017打开了项目的根文件夹,并且在打开时导入了cmake内容。我注意到cmake似乎可以正常运行,并输出通常会在linux端输出的所有内容。这是在VS2017显示生成输出的下部窗口中。
但是,当我在Visual Studio中的Cmake菜单选项下进行重建时,出现以下错误: 错误'Z:/Path/To/Proj/vstest/src/main.cpp','CMakeFiles / interface.dir / src / main.cpp.obj'所需,丢失并且没有已知的规则可以实现
我的Z:驱动器是到Linux计算机的映射驱动器,并且运行正常。 Make已安装在所有计算机上。我想在Visual Studio环境中不会假设在Linux上假设的一些简单操作。任何人都知道可能是什么吗?
相关文件
main.cpp:
#include <iostream>
int main()
{
std::cout << "Hello World" << std::endl;
return 0;
}
CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(test)
#Compiler Definition
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# using Clang
if(7.0.0 VERSION_GREATER_EQUAL CMAKE_CXX_COMPILER_VERSION)
message( FATAL_ERROR "must have clang version 7.0.0 or greater." )
endif()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# using GCC
if(8.0.0 VERSION_GREATER_EQUAL CMAKE_CXX_COMPILER_VERSION)
message( FATAL_ERROR "must have gcc version 8.0.0 or greater." )
endif()
endif()
#Enforce Build Folder use
if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
message(FATAL_ERROR "In-source builds not allowed. Please make a build directory.")
endif()
string(ASCII 27 Esc)
message(STATUS "Starting Build Sequence")
#Create Build Options
#packageing options
#Source
set(TEST_SOURCE_FILES src/main.cpp)
add_executable(test ${TEST_SOURCE_FILES})
#compiler flags
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall -std=c++17 -pedantic -U_FORTIFY_SOURCE")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wall -ansi -pedantic -U_FORTIFY_SOURCE")
目录结构:
Path To Proj
|_vstest
|_.vs
|_build
|_src
|_include(empty)
|_main.cpp
|_CMakeLists.txt
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。