作者eye5002003 (下一夜)
看板C_and_CPP
标题Re: [问题] VS2017和cmake 执行档输出位置问题
时间Tue Feb 27 15:08:21 2018
※ 引述《clh960524 (CLH)》之铭言:
: 开发平台(Platform): (Ex: Win10, Linux, ...)
: Win7
: 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
: Visual Studio 2017 IDE (Visual Studio 15.5)
: 额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
: 无
: 问题(Question):
: 最近在使用VS2017里面的CMake功能
: 在程式build完成之後
: 发现VS会把build出来的binary放到我安装CMake安装位置里的CMakeBuilds资料夹
: 想请问一下VS2017的CMake功能可不可以指定binary的输出位置
: 喂入的资料(Input):
: CMakeLists.txt
: 详细内容在"程式码"段落
: 预期的正确结果(Expected Output):
: binary会出现在目前project的根目录
: 错误结果(Wrong Output):
: binary会出现在CMake安装位置里的CMakeBuilds资料夹
: 程式码(Code):(请善用置底文网页, 记得排版)
: https://gist.github.com/Cuda-Chen/301e24154e1e936c6a90cc2a90529b71
: CMakeLists.txt 文字好读版:
: # CMake minimum version requirment
: cmake_minimum_required(VERSION 2.8)
: # executable name
: project(sobel_mfnn)
: # set executable output path
: #set(EXECUTABLE_OUTPUT_PATH "..")
: set(CMAKE_BUILD_TYPE Debug)
: set(SRCS
: main.cpp
: )
: add_executable(sobel_mfnn ${SRCS})
: 补充说明(Supplement):
: 无
大概是改成这样吧
我没有用2017版,但是有在使用2010、2012、2013、2015
所以说不定我的写法也过时了
project(sobel_mfnn)
cmake_minimum_required(VERSION 2.8)
# set(CMAKE_BUILD_TYPE Debug) Visual Studio 好像不鸟这个写法
# 必须 FORCE 叫 IDE 乖乖听话
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "whatever" FORCE)
# 大部分人会丢到 PROJECT_BINARY_DIR
# 你确定要丢 PROJECT_SOURCE_DIR 吗?
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR})
set(SRCS main.cpp)
add_executable(sobel_mfnn ${SRCS})
# 只有 Visual Studio 才需要下面这段
# 会阻止 VS 建立不必要的资料夹
if(MSVC)
set_target_properties(sobel_mfnn PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}
LIBRARY_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}
RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}
ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}
ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}
ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}
)
endif()
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.167.54.24
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1519715304.A.0B8.html
1F:推 clh960524: 谢大大回覆,我平常在用cmake生makefile的时候 02/28 00:29
2F:→ clh960524: 会把相关资料放在那个专案的build资料夹 02/28 00:30
3F:→ clh960524: 然後产生出来的executable产生在专案的根目录 02/28 00:32
4F:→ clh960524: (自己写程式时给程式的读档习惯) 02/28 00:33
5F:→ clh960524: 不过在看完大大的回覆之後,我觉得我之前的executable 02/28 00:34
6F:→ clh960524: 产生习惯真的需要改,总之感谢回覆 :) 02/28 00:35