파일에 저장된 SBCL 소스를 커맨드 프롬프트에서 스크립트처럼 실행할 수도 있다.


sbcl.exe --script <filename>



아래와 같이 배치파일로 저장해두어도 된다.


runcl.bat :

sbcl.exe --script %1



<테스트 환경>

OS : Windows 7

SBCL 버전 : 1.2.7


,





Lazarus는 델파이와 호환되는 파스칼 개발 환경으로 오픈 소스이며 윈도우, 리눅스, Mac OS X 등의 플랫폼을 지원합니다.



1. 설치


1) 다음 홈페이지에서 Lazarus 최신 버전을 다운 받아 인스톨합니다.


 - Lazarus Homepage : http://www.lazarus-ide.org/



2. 샘플 프로젝트 실행


1) File - Open 메뉴를 선택하고, <설치 폴더>/examples/hello.lpi 파일을 선택합니다.


2) Run - Compile을 선택하여 컴파일합니다.


3) Run - Run을 선택하면 프로그램이 실행되며 메시지 박스가 나타납니다.





본 내용은 아래 버전을 기준으로 작성되었습니다.


Lazarus Version 1.4.0 for Windows 32 bit



,

GNUstep을 사용하여 윈도우에서 Objective-C를 사용하기 위한 방법을 간단히 정리해보았습니다.


아이폰용 앱을 만들 수는 없지만, Objective-C에 익숙해지는데 유용하게 사용될 수 있을 듯합니다.



설치


1. GNUstep website에서 GNUstep MSYS Subsystem, GNUstep Core, GNUstep Devel을 다운로드한다.

 - GNUstep website : http://www.gnustep.org/windows/index.html

2. 위 순서대로 설치한다.

3. C:\GNUstep\bin\ -> PATH에 추가한다.



설치 확인


1. 명령 프롬프트를 열고 gcc -v를 입력하여 설치를 확인한다.



예제 실행


1. 다음 내용을 HelloWorld.m 파일로 저장한다.


#include <Foundation/Foundation.h>

int main(void)
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSLog(@"Hello World!.");
    [pool drain];
    return 0;
}


2. 명령 프롬프트에서 아래와 같이 입력하여 빌드가 되는 것을 확인한다.


gcc -o helloworld.exe HelloWorld.m -I C:\GNUstep\GNUstep\System\Library\Headers -L C:\GNUstep\GNUstep\System\Library\Libraries -std=c99 -lobjc -lgnustep-base -fconstant-string-class=NSConstantString



[추가] 제약 사항


1. GNUstep에서는 objective c의 block을 사용 불가.


2. GNUstep에서는 objective c의 property를 사용 불가. (컴파일은 되지만 런타임에 에러가 남)





,

Emacs에서 Emacs Lisp가 아닌 Common Lisp 구현체 중 하나인 SBCL을 사용하기 위한 방법을 간단히 정리해보았습니다.


1. 다운로드 주소


SBCL : http://www.sbcl.org/

Slime : http://common-lisp.net/project/slime/


2. 설치 순서


1) SBCL을 설치한다. (스페이스가 포함되지 않은 경로에 설치한다)

2) Slime 압축을 푼 폴더를 <Emacs 설치 경로>/site-lisp 밑에 위치시킨다.

3) .emacs 파일에 다음과 같은 내용을 추가한다. (경로명을 적을 때 \가 아닌 /를 사용하는 것에 유의)


(setq inferior-lisp-program "C:/sbcl/sbcl.exe")
(add-to-list 'load-path "C:/emacs-24.3/site-lisp/slime-master/")
(require 'slime)
(slime-setup)



이제 M-x slime을 입력하면 slime buffer가 뜨면서 SBCL을 사용할 수 있습니다.






<테스트 환경>

OS : Windows 7 (32bit)

Emacs 버전 : Emacs 24.3 윈도우용

SBCL 버전 : 1.2.7

Slime 버전 : 2.21


,

윈도우에서 외부 에디터로 emacs를 등록하여 사용할 때, EmacsW32의 경우는 emacsclient를 곧바로 사용하면 되지만, 오리지널 emacs의 경우는 잘 되지않고 몇가지 추가 작업이 필요하다.


1. emacs를 실행한 후, C-x C-f를 누르고 ~/.emacs를 입력하여 설정 파일을 연 뒤, 다음 문장을 추가한다.


(server-start)



2. 외부 에디터로 등록할 때, 아래와 같이 입력한다.


<emacs 설치 경로>\bin\emacsclientw.exe -a <emacs 설치 경로>\bin\runemacs.exe



3. 필요에 따라 다음 옵션도 설정하도록 한다.


-> [Emacs] 사용 중, Buffer 'xxxx' still has client; kill it? 메세지 방지


Buffer 'xxxx' still has client; kill it? 메세지 방지 옵션까지 적용한 최종 실행 커맨드는 다음과 같다.


<emacs 설치 경로>\bin\emacsclientw.exe -n -a <emacs 설치 경로>\bin\runemacs.exe




또 다른 방법

-a 옵션을 사용하는 대신에, ALTERNATE_EDITOR 환경변수를 사용하여 설정하여도 된다.

-> 환경 변수 설정하는 방법




<테스트 환경>
OS : Windows 7 (32bit)
Emacs 버전 : Emacs 24.3 윈도우용


,
외부 에디터로 EmacsW32를 등록하여 사용할 때, 파일마다 별도의 emacs 창이 뜨는 것을 방지하기 위하여 emacsclient (혹은 emacsclientw)를 통하여 emacs를 실행하게 된다.


이 경우 파일을 편집한 후, 해당 버퍼를 닫으려고 할 때, 다음과 같은 메세지를 보게 된다.


Buffer 'xxxxx' still has client; kill it?


이 메세지가 나타나는 이유는 명령 프롬프트를 통해 emacsclient를 실행해보면 알 수 있는데, 명령 프롬프트 상에서 다음과 같이 emacsclient를 실행해보자.


emacsclient myfile


emacs를 통해 파일이 열리지만, 프로그램이 계속 실행중이며 프롬프트가 돌아오지 않는다. 해당 버퍼가 닫히고 나서야 비로소 프롬프트가 돌아온다.


emacsclient --help라고 입력하면, 실행 옵션 중에 다음과 같은 옵션이 있다.


-n, --no-wait   Don't wait for the server to return


이 옵션을 사용하여 아래와 같이 실행했을 때는 파일이 열리는 동시에 프롬프트가 돌아오는 것을 확인할 수 있다.


emacsclient -n myfile


따라서 위의 메세지를 방지하기 위해서는 외부 에디터로 emacs를 등록할 시에는 아래와 같이 -n 옵션을 적용하여 등록하도록 하자.


emacsclient -n


* 주의사항 *


특수한 경우에는 이 옵션을 사용하지 말아야 할 수도 있다. 예를 들어 에디터를 실행한 곳에서 편집이 끝나기를 기다려야 하는 경우.



또 다른 방법

.emacs 파일에 다음 초기화 구문을 추가해주는 방법이 있다.


(eval-after-load "server" '(defalias 'server-kill-buffer-query-function '(lambda () t)))




단, 이 방법을 사용하면 팝업은 안 뜨지만 emacsclient를 실행한 client측은 파일이 닫힐 때까지 대기 상태로 남아있게 된다.



<테스트 환경>


OS : Windows 7 (32bit)

Emacs 버전 : EmacsW32 1.58-091103 patched (Emacs-23-CvsP091103-EmacsW32-1.58.exe)



,

먼저 파이썬이 설치되어있어야 한다.


명령 프롬프트를 열고 다음 경로로 이동한다.


<Cocos2d-x 설치 경로>/tools/project-creator



아래와 같이 입력하면 새로운 프로젝트를 생성할 수 있다.


python create_project.py -project PROJECT_NAME -package PACKAGE_NAME -language PROGRAMMING_LANGUAGE


옵션)

-project PROJECT_NAME : 프로젝트 명

-package PACKAGE_NAME : 패키지 명

-language PROGRAMMING_LANGUAGE : 사용할 프로그래밍 언어. 다음 세가지 중 하나 [cpp | lua | javascript]


예제)

python create_project.py -project MyGame -package com.MyCompany.AwesomeGame -language cpp



프로젝트의 루트 폴더 생성 위치는 <Cocos2d-x 설치 경로>/projects 밑이다.



본 내용은 아래 버전을 기준으로 작성되었습니다.


  • Cocos2d-x 2.2.5


,

폴더 구조


HelloCpp 샘플 프로젝트로 설명을 하면,


HelloCpp 루트 폴더 : <Cocos2d-x 설치 경로>/samples/Cpp/HelloCpp


HelloCpp/proj.플랫폼 : 각 플랫폼 별 프로젝트 폴더


HelloCpp/Classes : Cocos2d-x를 사용하는 코드가 구현된 .cpp, .h 소스 파일들


HelloCpp/Resources : Cocos2d-x에서 사용하는 .png와 같은 리소스 파일들.




안드로이드 관련


  • build_native.sh 실행시 HelloCpp/Resources 폴더 밑의 파일들이 <안드로이드 프로젝트 폴더>/assets 폴더로 복사된다.


  • 소스 파일 추가시, HelloCpp/proj.android/jni 밑에 Android.mk 파일도 다음과 같이 수정해줘야 한다.


LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/HelloWorldScene.cpp \

                   ../../Classes/추가된 파일.cpp




본 내용은 아래 버전을 기준으로 작성되었습니다.


  • Cocos2d-x 2.2.5


,