Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.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_test ├── bin ├── CMakeLists.txt ├── src │   └── func.cxx └── subproj ├── CMakeLists.txt └── src └── main.cxx CMakeLists.txt: cmake_minimum_required(VERSION 2.8) project(main) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAK

我有以下目录结构

cmake_test
├── bin
├── CMakeLists.txt
├── src
│   └── func.cxx
└── subproj
    ├── CMakeLists.txt
    └── src
        └── main.cxx
CMakeLists.txt:

cmake_minimum_required(VERSION 2.8)

project(main)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/bin/)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/bin/lib/)
set(CMAKE_CXX_FLAGS_DEBUG "-std=c++11 -Wall -g3 -O0")
set(CMAKE_CXX_FLAGS "-std=c++11 -Wall -Wextra")

set(META_SRC_DIR ${CMAKE_HOME_DIRECTORY}/src)

aux_source_directory(${META_SRC_DIR}/           META_SRC_LIST)

add_subdirectory(subproj)
cmake_minimum_required(VERSION 2.8)

project(subproj)

aux_source_directory(${PROJECT_SOURCE_DIR}/src  SRC_LIST)

#include_directories(${PROJECT_SOURCE_DIR}/include)

add_executable(${PROJECT_NAME} ${SRC_LIST})
subproj/CMakeLists.txt:

cmake_minimum_required(VERSION 2.8)

project(main)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/bin/)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/bin/lib/)
set(CMAKE_CXX_FLAGS_DEBUG "-std=c++11 -Wall -g3 -O0")
set(CMAKE_CXX_FLAGS "-std=c++11 -Wall -Wextra")

set(META_SRC_DIR ${CMAKE_HOME_DIRECTORY}/src)

aux_source_directory(${META_SRC_DIR}/           META_SRC_LIST)

add_subdirectory(subproj)
cmake_minimum_required(VERSION 2.8)

project(subproj)

aux_source_directory(${PROJECT_SOURCE_DIR}/src  SRC_LIST)

#include_directories(${PROJECT_SOURCE_DIR}/include)

add_executable(${PROJECT_NAME} ${SRC_LIST})
当我构建此项目(
cd-bin;cmake..;make
)时,我面临以下错误:

Scanning dependencies of target subproj
[ 50%] Building CXX object subproj/CMakeFiles/subproj.dir/src/main.cxx.o
[100%] Linking CXX executable .
/usr/bin/ld: cannot open output file .: Is a directory
collect2: error: ld returned 1 exit status
subproj/CMakeFiles/subproj.dir/build.make:94: recipe for target 'subproj' failed
make[2]: *** [subproj] Error 1
CMakeFiles/Makefile2:85: recipe for target 'subproj/CMakeFiles/subproj.dir/all' failed
make[1]: *** [subproj/CMakeFiles/subproj.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

如何修复它?

与中的问题完全相同:由于
add_subdirectory(subproj)
命令,您的
bin/
目录包含
subroj
子目录。所以它不能用作同名可执行文件的输出目录。@Tsyvarev噢,非常感谢!你帮我节省了几个小时的工作时间!:)与中的问题完全相同:您的
bin/
目录包含
subroj
子目录,因为
add\u子目录(subroj)
命令。所以它不能用作同名可执行文件的输出目录。@Tsyvarev噢,非常感谢!你帮我节省了几个小时的工作时间!:)