이번에는 tinyscheme 을 윈도에서 빌드하려고 하니 좀 성가시네. msvc 버전문제 인가?
그래서 간단하게 CMakeLists.txt 를 만들어봤다. 물론! 빌드되는것까지만 확인해본 것이니
좀더 둘러보고 써야겠지만. 어쨌거나 적어둔다.
펼쳐두기..
2010/01/22 추가. msvc9 에서 빌드해본거. 이전에 적은거랑 별 차이는 없다.펼쳐두기..
헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤
펼쳐두기..
# 플래폼설정. 이거 외에도 코드에서 snprintf 를 _snprintf 로 access 를
# _access 로 식의 약간의 변경이 필요. 아 짱나.
add_definitions(-DWIN32)
# 요 워닝은 일단 무시
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996")
# 이건 feature 설정들
add_definitions(-DUSE_DL=0 -DUSE_MATH=0 -DUSE_ASCII_NAMES=0)
# DLL 뽑아내고
add_library(tinyscheme SHARED scheme.c)
# 스탠드얼론도 뽑아내고
add_executable(tinyscheme scheme.c)
2010/01/22 추가. msvc9 에서 빌드해본거. 이전에 적은거랑 별 차이는 없다.펼쳐두기..
scheme.c 에 다음 추가.
#ifdef _MSC_VER
# include <io.h>
# define access _access
# define snprintf _snprintf
#endif
CMakeLists.txt 에 아래 추가
project(tinyscheme)
add_executable(scheme scheme.c dynload.c)
add_library(scheme scheme.c dynload.c)
configure_file(init.scm ${tinyscheme_BINARY_DIR} COPY_ONLY)
워닝제거를 위해선 아래도 추가( 내가 원해 misc.cmake 에 들고다니는 코드에서 발췌 )
macro(suppress_msvc_warnings ns)
if(MSVC)
foreach(n ${ns})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd${n}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd${n}")
endforeach(n ${ns})
endif(MSVC)
endmacro(suppress_msvc_warnings ns)
suppress_msvc_warnings(4996)
댓글 없음:
댓글 쓰기