Visual Studio 및 Makefile 용 솔루션을 생성하기 위해 CMake를 사용하고 있습니다. 이미 디버그 및 릴리스 형식에 대해 다른 폴더를 만드는 데 성공했으며 솔루션에서 두 가지 옵션을 발견했습니다. 내가 Win32 및 64에 대해 동일한 작업을 수행 할CMake 및 Makefile의 다중 아키텍처
- :
지금 내가 3 개 질문이? 가능한가? 편집 : 약간의 연구 후, 그것은 불가능한 것 같습니까?)
- 그리고 또 다른 질문은 "NMake Makefiles"를 생성 할 때 내 메이크 파일에서 내 두 가지 유형 (릴리스 및 디버그)을 검색 할 수 없습니다! 어떤 파일에서 이걸 가져올 수 있습니까?
- EDIT : 그리고 어떻게 NMake 명령으로 CLI에서 디버그 또는 릴리스를 설정할 수 있습니까? 여기
내 CMakeLists.txt입니다 : 내가 NMAKE 또는 cmake의 NMAKE 발생기에 대해 잘 모르는
cmake_minimum_required(VERSION 2.8)
# Configuration of Types
MESSAGE("Generated with config types: ${CMAKE_CONFIGURATION_TYPES}")
SET(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE)
#Configuration of zlib.lib
PROJECT(zlib C)
# Path of Release
SET(LIB_RELEASE_PATH "../cmake_x64")
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${LIB_RELEASE_PATH}/lib/")
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${LIB_RELEASE_PATH}/lib/")
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${LIB_RELEASE_PATH}/lib/")
# Path of Debug
SET(LIB_DEBUG_PATH "../cmake_x64d")
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${LIB_DEBUG_PATH}/lib/")
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${LIB_DEBUG_PATH}/lib/")
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${LIB_DEBUG_PATH}/lib/")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3")
ADD_DEFINITIONS("/Gm" -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_UNICODE)
# Files of librairy
ADD_LIBRARY(
zlib
STATIC
../.c
and
../.h
)
#Configuration of core.dll
project(core CXX)
# Path of Release
SET(BIN_RELEASE_PATH "../cmake_x64")
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BIN_RELEASE_PATH}/bin/")
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BIN_RELEASE_PATH}/bin/")
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BIN_RELEASE_PATH}/bin/")
# Path of Debug
SET(BIN_DEBUG_PATH "../cmake_x64d")
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BIN_DEBUG_PATH}/bin/")
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BIN_DEBUG_PATH}/bin/")
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BIN_DEBUG_PATH}/bin/")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
set_property(GLOBAL PROPERTY LINK_LIBRARY_DEPENDENCIES "yes")
add_definitions(-D_UNICODE -D_USRDLL -DCORE_EXPORTS)
add_definitions("/Gm")
# Files of librairy
add_library(
core
SHARED
../.h
and
../.cpp
)
link_directories("/build/lib/")
target_link_libraries(core zlib)
#END OF FILE
감사
확인. 이 답변을 주셔서 감사합니다. 다른 포럼에서도 같은 것을 읽었습니다. 그러나 이것은 각 폴더에 CMakeLists가 있어야한다는 것을 의미합니까? 아니면 어떻게 라인 명령에서 다른 폴더에 자신의 파일을 빌드 CMake 말 할 수 있습니까? – Algorys
"각 폴더"가 무슨 뜻인지 확실하지 않습니다. CMakeLists.txt 파일을 이전보다 더 만들 필요가 없습니다. 위의 단계에서 mkdir을 실행 한 다음 cd를 입력하고 cmake를 실행하십시오. 그들은 전혀 내용이 없습니다. "cmake"를 실행하는 대신 일반적으로하는 것처럼 소스 트리의 루트에서 새로운 빈 디렉토리 내에서 cmake를 실행하고 "."대신 인수로 소스 디렉토리에 경로 이름을 전달합니다. – MadScientist
확인. 이해, 나는 현재 폴더에 CMake 빌드 잊지. 많은 감사합니다. – Algorys