Computer/ETC.2016. 7. 21. 17:36

AttributeError: 'module' object has no attribute 'STARTF_USESHOWWINDOW'

라고 요상한 에러가 나서 그래프비즈를 안 깔아서 그런가 보니 또 깔려있고.. 한참 삽질하다 보니까 다른 이유였음..


Lib/site-packages/graphviz/files.py

if PLATFORM == 'windows':  # pragma: no cover
    STARTUPINFO = subprocess.STARTUPINFO()
    STARTUPINFO.dwFlags |= subprocess.STARTF_USESHOWWINDOW
    STARTUPINFO.wShowWindow = subprocess.SW_HIDE


로 되어있는데, 다음과 같이 고친다.

STARTF_USESHOWWINDOW

SW_HIDE

두 상수를 다른 곳에서 가져다 쓰면 잘 돌아가더라..

if PLATFORM == 'windows':  # pragma: no cover
    import _subprocess
    STARTUPINFO = subprocess.STARTUPINFO()
    STARTUPINFO.dwFlags |= _subprocess.STARTF_USESHOWWINDOW
    STARTUPINFO.wShowWindow = _subprocess.SW_HIDE

http://stackoverflow.com/questions/4703983/module-subprocess-has-no-attribute-startf-useshowwindow

Posted by Adward

댓글을 달아 주세요

Computer2014. 6. 13. 17:51

xml 포맷의 위키피디아 페이지를 갖고 페이지랭크를 계산한다. 20회 iteration 후 top 300 rankers를 뽑아낸다.

과제에서 주어진 데이터가 well-formed xml이 아니라서 약간 짜증이 났었다.


xml unmarshalling에 SAX 파서를, 위키 텍스트에서 링크를 뽑아내는 데 Mylyn Wikitext 파서를 사용했다.

위키텍스트 파서가 하도 무거워서 위키피디아 데이터를 읽는 시간이 제일 오래 걸린다. 수업을 같이 듣는 횽아들은 String.substring으로 위키텍스트 파서를 손수(...) 짜서 상당히 빠르다고 알고있지만, 난 그런 거 하기 싫어서 가져다 썼음. 하하..


과제 마감일이 다가오고 보고서도 써놓지 않은 상황에서 입력 데이터가 하도 더러워서 EMR 클러스터는 자꾸 뻗고... 예외 처리 코드만 늘어나고.. 이래저래 더러운 코드가 되어버렸다.


Hadoop 버전

https://github.com/hsyhsw/PageRank


PigLatin 버전

https://github.com/hsyhsw/PageRank-Pig


하둡 버전은 AWS에서 결과가 잘 나오는 것을 확인했다.

피그라틴 버전은 AWS 계정에 문제가 생기는 바람에 클러스터 환경에선 테스트를 할 수가 없었다. 그래서 로컬에서만 돌아간다.(아마도?)

두 버전 공히 잡다한 버그들이 있지만 알 게 뭐야..


입력 파일 형식은 두 버전 모두 피그라틴 버전의 input/inputTest.txt에 보이는 것과 동일하다.


'Computer' 카테고리의 다른 글

Iterative PageRank algorithm implementation  (0) 2014.06.13
Posted by Adward

댓글을 달아 주세요

Computer/ETC.2013. 8. 19. 22:09

윈도 설치 디스크를 외장 하드로 옮기는 또 하나의 방법..


bootsect 로 destination disk 의 boot code 를 갱신하고 설치 디스크의 모든 파일을 destination disk 로 복사한다. 윈도를 설치하려는 컴퓨터가 USB Booting 을 지원한다면 윈도 설치 프로그램이 실행되도록 부팅이 된다.


bootsect.exe 는 윈도 설치 디스크의 boot 디렉토리에 있다.

/nt52 또는 /nt60 옵션(노랑색 음영 부분 참조)을 지정한 뒤 destination disk 의 drive letter 를 지정하고 실행한다.

예:

bootsect /nt60 e:

설치하려는 OS 가 비스타 또는 서버 2008 이후의 버전(윈 7, 8 모두 여기에 해당)이고, 설치 디스크의 내용을 e: 로 복사하면 된다. 설치 디스크의 root 에서 bootmgr 파일을 찾을 수 있다.


항상 유닉스 계열 터미널만 쓰다보니 솔직히 윈도에 cmd 는 잘 모르겠다.. 그래도 가끔 쓸 일이 있을 것 같기에, 기록을 남겨둠..


아래는 bootsect /help 의 내용...

-------------------------------------------------------------------------------------------

bootsect {/help|/nt60|/nt52} {SYS|ALL|<DriveLetter>:} [/force] [/mbr]


Boot sector restoration tool


Bootsect.exe updates the master boot code for hard disk partitions in order to

switch between BOOTMGR and NTLDR.  You can use this tool to restore the boot

sector on your computer.


/help   Displays these usage instructions.


/nt52   Applies the master boot code that is compatible with NTLDR to SYS,

        ALL, or <DriveLetter>.  The operating system installed on SYS, ALL, or

        <DriveLetter> must be older than Windows Vista.


/nt60   Applies the master boot code that is compatible with BOOTMGR to SYS,

        ALL, or <DriveLetter>.  The operating system installed on SYS, ALL, or

        <DriveLetter> must be Windows Vista, Windows Server 2008 or later.


SYS     Updates the master boot code on the system partition used to boot

        Windows.


ALL     Updates the master boot code on all partitions.  ALL does not

        necessarily update the boot code for each volume.  Instead, this

        option updates the boot code on volumes that could be used as Windows

        boot volumes, which excludes any dynamic volumes that are not

        connected with an underlying disk partition.  This restriction is

        present because boot code must be located at the beginning of a disk

        partition.


<DriveLetter> Updates the master boot code on the volume associated with this

        drive letter.  Boot code will not be updated if either 1)

        <DriveLetter> is not associated with a volume or 2) <DriveLetter> is

        associated with a volume not connected to an underlying disk

        partition.


/force  Forcibly dismounts the volume(s) during the boot code update.  You

        should use this option with caution.


        If Bootsect.exe cannot gain exclusive volume access then the file

        system may overwrite the boot code before the next reboot.

        Bootsect.exe always attempts to lock and dismount the volume before

        each update.  When /force is specified, a forced dismount is attempted

        if the initial lock attempt fails.  A lock can fail, for example, if

        files on the target volume are currently opened by other programs.


        When successful, a forced dismount allows exclusive volume access and

        a reliable boot code update even though the initial lock failed.  At

        the same time, a forced dismount invalidates all open handles to files

        on the target volume.  This could result in unexpected behavior from

        the programs that opened these files.  Therefore, you should use this

        option with caution.


/mbr    Updates the Master Boot Record without changing the partition table on

        sector 0 of the disk that contains the partition specified by SYS, ALL,

        or drive letter.  When used with /nt52 option, the master boot record

        is compatible with operating systems older than Windows Vista.  When

        used with the /nt60 option, the master boot record is compatible with

        Windows Vista, Windows Server 2008 or later.


Example:


To apply the master boot code that is compatible with NTLDR to the volume

labeled E:, use the following command:


bootsect /nt52 E:



Posted by Adward

댓글을 달아 주세요

Computer/ETC.2013. 3. 16. 06:42

ㅈㄱㄴ. 코드도 무쟈게 단순하다.

#include <stdio.h>

int main(int argc, char **argv) {
	for (int i = 0; i < 110; ++i) {
		// \033[스타일_번호m 스타일 시작
		printf("%3d --> \033[%dm%s\033[0m\n", i, i, "Text");
		// \033[0m 스타일 끝. 스타일을 끝내지 않으면 이후의 출력들도 앞서 지정한 스타일로 출력된다.
	}

	return 0;
}




맥 터미널에서 돌린 결과.

 5번이 보이지 않고 있는데, 신기하게도 깜빡이 효과를 보여준다.

8번은 투명효과인듯 하다. 저 부분을 블럭 치고 복사하면 Text 라는 내용이 복사된다.

9번은 strike 효과인데, 맥 터미널에서는 동작하지 않고있다.






우분투 터미널에서 돌린 결과.

깜빡이 효과가 나타나지 않는다.


PS / printf 와 같은 함수를 통해서만 이런 걸 할 수 있는 것이 아니라, 쉘에서 echo -e "\033[??mTEXT\033[0m" 를 실행해도 같은 결과를 얻을 수 있다. ?? 에는 앞선 C/C++ 코드에서와 같이 숫자가 들어가는데 C/C++/Shell 모두에서 이런 효과들을 ;(semicolon) 을 숫자들 사이에 끼워넣어 조합할 수 있다. 예) 굵고 밑줄이 그인 녹색인 폰트 --> 1;4;32



encapsulating class & test code


test_colorterm.cpp


ColorTerm.hpp


Posted by Adward

댓글을 달아 주세요

Computer/Learning C / C++2011. 5. 21. 19:39
C++을 배우고 있다. C와는 다르게 C++ 에선 << 오퍼레이터를 이용하여 스트림에 내용들을 "집어넣게" 되는데 우연히 이클립스를 끄적거리다가 특이한 것을 알아내게 되어, 까먹을까봐 여기 기록을 해 놓는다.

 

  /**

   *  @brief  Write a newline and flush the stream.

   *

   *  This manipulator is often mistakenly used when a simple newline is

   *  desired, leading to poor buffering performance.  See

   *  http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#2 for more

   *  on this subject.

  */


  /**

   *  간단히 말해서 개행문자를 삽입하고 스트림을 비운다.

   *

   *  이 조작자(manipulator)는 단순히 개행문자만이 필요한 경우에도 종종 실수로(아니면 몰라서?)

   *  쓰인다. 그러나 이것은 아주 불량한 버퍼링 성능을 초래한다. 아래를 참고할 것.

   *  http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#2 for more

   *  on this subject.

  */



 라는 문구가 보인다. 흔히 개행문자의 역할을 한다고 알려져 있지만 사실 이  endl은 개행 + 스트림 비우기(버퍼 비우기?)를 행한다.

메모리상의 스트림에 이 endl 을 행할 경우엔(cout 의 경우 화면으로 출력을 보여주기에 역시 성능 저하가 상당히 크지만) 이 endl 을 써도 큰 성능 차를 느낄 수 없을지 모르지만 파일스트림에 이 endl을 자주 행할경우, 디스크에 이 endl이 나타날 때 마다 쓰기를 행함으로써 상당한 성능 저하를 가져올 것으로 예상된다.(테스트는..........)

추가 > buffered stream에 한해서 버퍼를 비우는(flush)작업을 행한다. 파일스트림의 경우 buffered stream 에 해당이 되므로 적절한 시점에서의 사용이 매우 중요할듯.

single quote 와 back slash 를 타이핑 하는게 좀 귀찮기는 하지만 프로그램의 성능을 위해서라도 \n과 '\n' 를 쓰는게 바람직해보인다. 물론 필요할 때 endl을 쓰는 것은 매우 중요하다.

'Computer > Learning C / C++' 카테고리의 다른 글

출력 스트림과 endl  (0) 2011.05.21
fflush(stdin) 타도 -_-;  (0) 2011.04.23
GCC on iOS 4.2.1  (6) 2011.04.05
Posted by Adward
TAG C++, endl, flush, Stream

댓글을 달아 주세요

Computer/ETC.2011. 5. 6. 13:23
UTF-8을 지원(멀티바이트 캐릭터 지원)하는 ncursesw 라이브러리(기본 ncurses 라이브러리는 EUC-KR 만을 지원한다. 멀티바이트 케릭터는 미지원.)가 기본적으로 깔려있지 않아서 이를 이용하기 위해
 sudo apt-get install libncursesw5-dev
를 실행했는데 우분투 아카이브 서버에 접속이 안되는 것이었다 -_-. 몇년 전부터 죽었다고 하던데 나름 최신이라는 우분투 10.10버전에서조차 한국의 기본 소스 주소가 이녀석들이다. 한국이라고 무시하나!?!?!?

이 문제를 해결하기 위해서는
/etc/apt/sources.list
파일을 수정해줘야한다.

sudo 명령으로 에디터를 실행하여
 kr.archive.ubuntu.com/ubuntu

ftp.daum.net/ubuntu
로 모두 바꿔준다. 어차피 우분투 서버엔 접속이 안되므로 미련 없이 다음의 ftp서버로 주소를 바꿔버린다. 굳이 원 서버 주소를 남겨두고싶다면 줄의 선두에 # 를 붙여서 주석처리를 해주고 다음의 하이라이트된 녀석들을 추가한다.

#############################################################################

#deb cdrom:[Ubuntu 10.10 _Maverick Meerkat_ - Release i386 (20101007)]/ maverick main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.

deb http://ftp.daum.net/ubuntu/ maverick main restricted
deb-src http://ftp.daum.net/ubuntu/ maverick main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://ftp.daum.net/ubuntu/ maverick-updates main restricted
deb-src http://ftp.daum.net/ubuntu/ maverick-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ftp.daum.net/ubuntu/ maverick universe
deb-src http://ftp.daum.net/ubuntu/ maverick universe
deb http://ftp.daum.net/ubuntu/ maverick-updates universe
deb-src http://ftp.daum.net/ubuntu/ maverick-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ftp.daum.net/ubuntu/ maverick multiverse
deb-src http://ftp.daum.net/ubuntu/ maverick multiverse
deb http://ftp.daum.net/ubuntu/ maverick-updates multiverse
deb-src http://ftp.daum.net/ubuntu/ maverick-updates multiverse

## Uncomment following lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://ftp.daum.net/ubuntu/ maverick-backports main restricted universe multiverse
deb-src http://ftp.daum.net/ubuntu/ maverick-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu maverick partner
# deb-src http://archive.canonical.com/ubuntu maverick partner

#############################################################################

모두 바꾼 다음
 sudo apt-get update
를 실행하여 패키지들을 갱신해준 뒤 원하는 패키지들을 apt-get 명령어로 막힘 없이 설치/업데이트 할 수 있다.
Posted by Adward

댓글을 달아 주세요

  1. 지나가는이

    님 덕분에 속 시원히 해결하고 갑니다.

    언어 설치하는데 속 터져 죽는 줄 알았네요~ㅋㅋㅋ

    감사합니다.

    님 같은 분들이 있어 우분투를 씁니다~ ^^

    2011.05.12 17:22 [ ADDR : EDIT/ DEL : REPLY ]
    • 댓글 고맙습니다.

      저도 과제를 하는데 되는게 있어야지요... 답답해서 구글링 했더니 나오더라고요..ㅎㅎ

      2011.05.12 23:32 신고 [ ADDR : EDIT/ DEL ]
  2. 아 저도 죽을뻔했는데 님때문에 살았네요
    리눅스 입문?(시작)한지 일주일정도 됬는데 업데이트 안되길래 환장했었는데 ㅎㅎ
    고맙습니다.

    2011.05.13 14:04 [ ADDR : EDIT/ DEL : REPLY ]

Computer/Learning C / C++2011. 4. 23. 06:10
Visual C++에서만 사용 가능한 녀석이다.

fflush() 는 지정된 스트림을 비워주는 역할을 한다. (함수 자체는 표준이지만....)
표준 출력(stdout)은 간단하게 버퍼의 내용을 출력으로 다 보내버리면 비워지지만 표준 입력(stdin)은 그렇지 않다.
(잠깐 딴소리 : 그 외 출력 스트림(파일 포인터 등...)을 fflush 에 넘겨주는 경우는 stdout과 마찬가지로 해당 스트림의 목적지(?)에 버퍼에 있는 내용을 모두 밀어넣으면서 버퍼를 비운다.)

VC에서 이 기능의 구현이 어떻게 되어있는지는 알 수 없으나, 권장하고 싶지는 않은 방법이다. 물론 윈도에서만 돌아가는 프로그램일 경우 편리한 방법이겠으나, 표준이 아니므로 다른 환경에서 컴파일을 했을 때, 무슨 일이 일어날지 알 수가 없다.
GCC에서 컴파일을 해 본 결과, 컴파일 당시에는 아무런 문제가 없었으나 실제 프로그램을 돌려봤더니 해당 기능은 전혀 동작하지 않았다.

fflush(stdout) 은 표준
fflush(stdin)은 비표준이다.
프로그래밍을 처음 시작할 때 scanf를 사용하면서 발견하는 단순한 문제이지만 이를 조금 더 편하다고 해서 표준이 아닌 방법으로 해결하는것은 결코 좋은 습관이 아니라고 생각한다. 처음 시작부터 표준을 strict 하게 준수하도록 노력하는것이 조금 힘들더라도 반드시 필요한 것이 아닌가 한다.

이 스트림을 비우고 싶다면 이 곳에 남은 내용들을 모두 읽어내고 버리기 위해 다음의 코드를 사용한다.
 
#include <stdio.h>

void flush() {
	int a = 0;
	while (a != '\n' && a != EOF)
		a = getchar();
}

아무데서나 막 쓰면 실행 도중에 엔터를 두드려줘야 하는 경우가 생긴다. 필요할때만 써야한다.
간단하게 그냥 한번 건너뛰는 scanf 의 경우는 이 전에 getchar()를 한번 호출함으로써 문제를 해결할 수 있다.

그 어떤 경우에도 fflush(stdin)은 쓰지 말자고 강력하게 주장해본다...(응?)

'Computer > Learning C / C++' 카테고리의 다른 글

출력 스트림과 endl  (0) 2011.05.21
fflush(stdin) 타도 -_-;  (0) 2011.04.23
GCC on iOS 4.2.1  (6) 2011.04.05
Posted by Adward

댓글을 달아 주세요

Computer/ETC.2011. 4. 21. 00:32
$ echo $PATH
로 지금 설정된 PATH 확인.

임시로 바꾸기 위해서는
 $ PATH="$PATH:새_경로"
를 터미널에 invoke 한다.
e.g. ) 현재 작업 디렉토리를 추가하려면 $ PATH="$PATH:." 
작업중인 터미널과 여기에서 cmd + N 으로 열리는 터미널 모두에 효과가 적용된다. 그러나 터미널 종료 후(cmd + Q) 재실행 하면 설정이 날아간다.

~/.bash_profile 에 앞의 명령어를 추가하여 경로를 추가할 수도 있으나, 이렇게 하면 먼저 해두었던 앨리어스 설정들이 적용되지 않는다. (bash_profile은 디폴트로는 존재하지 않는듯하다. 뭐.. 그냥 만들어주면 된다.)
 

맥에서의 PATH는
~/.profile 또는 (각 사용자별 적용)
/etc/paths 를 손봐야한다. (모든 유저 공통 적용)

앞어 쓴 파일중 하나을 수정한다. (하나든 둘 모두를 하든..)
$ vim ~/.profile
$ sudo vim /etc/paths

vi gedit 등 에디터로 쓸 수 있는 녀석이면 모두 가능..

~/.profile 을 수정
사실상 터미널 실행시에 자동으로 실행되는 스크립트이므로 명령을 입력하면 된다.
PATH="$PATH:원하는_디렉토리_절대경로(~사용가능)" 로 추가를 해준다.(블럭처리된 부분)

 

파일을 열면 한 줄에 하나씩 경로가 들어있는데 파일의 끝에 원하는 경로를 하나씩 넣어준다.

/etc/paths 수정
<마지막 줄에 . (현재 디렉토리)이 추가 된 모습을 확인할 수 있다. 보안상 권장되지는 않는다고 하나, 편의를 위해서..>

Posted by Adward

댓글을 달아 주세요

Computer/Learning C / C++2011. 4. 5. 01:04
이 포스팅은 이 페이지 를 한글로 좀 더 간편하게 옮긴 것일 뿐임을 밝혀두는 바이다.

다만 컴퓨터 없이 아이폰 standalone으로 컴파일러를 설치하는 방법이다. 굳이 컴퓨터를 쓴다고 해도 소개할 방법과 크게 다르지가 않기에 따로 쓰지는 않겠다.

사전 작업
1.  IOS를 JailBreak 한 상태로 cydia 사용이 가능해야한다.
특히 시디아에서 패키지 필터링이 되어있어서, 몇 패키지들이 보이지 않을 수도 있다. 만일 아래서 나오는 패키지들이 보이지 않는다면,  시디아에서 Manage 섹션의 Setting에서 Developer 가 선택이 되어있는지를 확인하자.
2. Safari Download Manager 의 사용이 가능하면 좋다.(이것 + 아이파일을 사용할 수 있으면 컴퓨터가 필요 없이, 오직아이폰만을 가지고 GCC, ld  등의 툴체인 설치가 가능하다.)
3. iFile 의 사용이 가능하면 좋다.(정식 루트이던, 이상한 루트이건...)  

step 1.

위의 파일을 아이폰 내의 아무 디렉토리에 넣고 아이파일에서 실행하면 libgcc가 설치된다. 파일이 매우 작은데 이는, 실제 내용이 없는 fake 패키지이기 때문이다. 이 거짓 패키지를 설치하는 이유는 바로 다음단계에서 설치할 구버전의 아이폰 오에스에서 돌아가는 GCC를 설치하기 위함이다.

step 2.
시디아에서 gcc를 설치한다. GNU C Compiler라 되어있는 항목을 설치하면 된다. step 1에서 fake libgcc를 설치한 이유는 시디아에서 이 컴파일러 페키지를 설치하기 위한 의존성 검사를 하는데 이 libgcc라는 항목으로 인해 원래는 설치가 진행되지 않기 때문이다.

step 3.

위의 파일을 다운받아, 압축을 풀고 /usr/lib 에 파일들을 넣는다. 원래 이 파일들이 libgcc에 들어있는 파일들인데 step 1에서 껍데기만 깔아놨기 때문에 내용물을 채우는 과정이라 보면 되겠다. 겹치면 덮어쓰기를...

step 4.
시디아에서 iPhone 2.0 Toolchain 을 설치한다.

step 4.99999(?)
테스트를 위한 환경 준비작업 단계이다. 물론 아이폰에 OpenSSH 혹은 터미널이 깔려있다면 한결 수월하다. 아니라면 OpenSSH정도는 시디아에서 매우 쉽게 설치할 수 있으니 깔아놓자.
아이폰용 터미널은 기본으로 잡힌 소스에서 설치하면 실행이 되지 않는다.
소스에 http://YourCydiaRepo.org/ 를 추가하고 이 소스에서 배포하는 MobileTerminal을 설치하면 아이폰 내에서 터미널 사용이 가능하다.

루트로 로그인을 하고(패키지 설치를 하기 때문에 루트가 아니면 진행이 불가능하다. 원래는 명령어 앞에 sudo를 붙이면 되지만 아이폰에선 이 명령이 먹지 않는다. 역시 apt-get install 을 이용하여 sudo 를 설치 할 수 있지만 이것을 설치하고나서도 sudoers에 사용자 정의가 되어 있지 않다고 뜬다. 해결 방법이 없는지..) 쉘에
apt-get install vim
을 invoke 한다.(우분투에서나 먹는 명령어로 알고 있었는데 ios에서도 잘 돌아가더라는.. vim 뿐만 아니라 온갖 다른 패키지들을 설치할 수 있다.)

~/.vimrc를 입맛에 맞게 수정(기본적으로는 없는 파일이다. vim을 설치하고 이 파일을 편집하려고 하면 파일이 만들어진다.)하면 코딩을 할 때 매우 좋다. ^^

설치 명령어를 이용하여 gdb또한 설치가 가능하다... 완벽한 개발환경이다. -_-...
vim 이 불편하다면 nano를 쓸 수도 있다. apt-get install nano 로 설치가 가능하다.(pico는 없는듯.)

step 5.
테스트 과정을 거쳐보자. SSH로 아이폰에 접속을 하고(root 혹은 mobile로 로그인을 하면 된다. 다들 기본 패스워드인 alpine이 아닌 다른 녀석을 사용하고 있으리라고 믿는다.) hello.c 파일을 하나 만들어서 컴파일 하고는 실행을 해본다. 앞 단계에서 터미널을 깔았다면 아이폰 내에서 코딩을 하는것도 가능하다. 그러나 말리고싶군 -_-..



makefile을 만들어서 make명령어로 여러 소스들을 한번에 묶어서 빌드하는것 또한 가능하다. 조금 느린 손 안의 컴파일러랄까..? 정말 느리다는걸 피부로 느낄 수가 있다 -_-ㅋㅋ
제약 사항이 있다면 UIkit의 사용이 불가능하다는 것. 
아 그런데 한글이 깨져나온다 ㅠㅠㅠ

스샷을 폰의 터미널에서 찍고 올렸으면 더 재미있었을텐데 귀차니즘의 압박으로... 컴퓨터에서 ssh로 접속하여 스샷을 찍었다. 

'Computer > Learning C / C++' 카테고리의 다른 글

출력 스트림과 endl  (0) 2011.05.21
fflush(stdin) 타도 -_-;  (0) 2011.04.23
GCC on iOS 4.2.1  (6) 2011.04.05
Posted by Adward
TAG C, gcc, IOS

댓글을 달아 주세요

  1. 우왕

    엄청 좋네요..
    그런데 한글 입력은 어떻게 하지??? ㅋㅋ

    2011.08.16 23:27 [ ADDR : EDIT/ DEL : REPLY ]
  2. ㅜㅜㅜ

    4.999에서 모바일터미널까지 설치했는데
    그다음에 어떻게 해야하나요?ㅜㅜ
    아이패드상에서 컴파일가능한것맞죠??

    2011.11.03 03:36 [ ADDR : EDIT/ DEL : REPLY ]
    • 앞선 과정을 모두 다 하셔서 gcc가 제대로 설치 되었다면 gdb, vim, nano 와 같은 툴들은 시디아에서 모두 검색하여 설치가 가능합니다. (시디아의 패키지 세팅이 개발자(developer)로 되어 있는지 확인해주세요.)

      4.9999(?)는 굳이 전부 다 거치실 필요가 없습니다.
      기기의 화면에서 가상 키보드를 써가면서 작업을 하실 게 아니라면 모바일 터미널은 별 필요가 없습니다.
      시디아에서 openssh 정도만 설치해주시면(아이폰/패드가 ssh 서버 역할을 하도록 해줍니다.) 더 이상 할 일은 없습니다. 그저 기기에 접속을 해서 코딩을 하는게 남아 있을 뿐이죠.

      기타 아이폰에 ssh를 통해 접속하는 방법이라던가 쉘 명령어들은 검색을 하시면 좋은 자료들이 많이 나옵니다.(제 블로그엔... 없어요..) 뭐 아시겠지만 일반적인 유닉스 쉘과 거의 같거든요..

      2011.11.03 07:57 신고 [ ADDR : EDIT/ DEL ]
    • ㅜㅜㅜ

      OpenSSH는 해킹했을때 이미 설치해뒀었어요
      님은 컴퓨터에서 ssh로 접속한 모습을 보여주셨는데
      전 아이패드자체에서 코딩도하고 컴파일도 해보고싶은데
      가능한가요??

      2011.11.03 09:09 [ ADDR : EDIT/ DEL ]
    • 시디아에서 vim, nano같은 텍스트 에디팅 툴을 설치하시고 모바일 터미널에서 외부에서 ssh로 접속해서 작업하는것과 같은 방식으로 사용하실 수 있습니다.

      모바일 터미널에서 뭔가 안되는게 있나요?

      2011.11.03 20:46 신고 [ ADDR : EDIT/ DEL ]
  3. hk

    terminal에서 sudo 말고 su로 로그인하고 비밀번호 alpine으로 하면 root 가능하네요~

    2012.10.16 20:14 [ ADDR : EDIT/ DEL : REPLY ]