음...저도 참 몰랐는데, 이게 윈도우 환경이다보니....-_-;
참 셋팅도 힘들군요.

아무 셋팅을 안했다면 디버깅을 하게 되면 아래와 같은 경고문이 뜰껍니다.
사용자 삽입 이미지

Can't find a source file at "/cygdrive/d/~~~~~.c
Locate the file or edit the source lookup path to include its location.
저걸 보면서 느낀점은 "아놔! 저기에 파일 있잖아! 미췬 이클립스야!!!" 라는 생각이 들었는데요.

자세히보면 /cygdrive/d/....... 우리가 사용하는 윈도우는 d:/ 이겠지요.
저걸 매핑하는 것을 이클립스에서 지원합니다.

Window -> Preferences -> C/C++ -> Debug -> Common Source Lookup Path라는 것이 있습니다.
여기서 add버튼을 클릭해서 Path Mapping을 선택합니다.
추가된 것을 선택하고, Edit를 합니다.
이름은 아무렇게나 써주시고, Add를 합니다.
Compilation Path에 /cygdrive/d(c드라이브는 c일껍니다) 라고 적고,
Local file system path에다가는 실제 드라이브 경로 (ex - d:\. c드라이브면 c라고 해야할 껍니다 ^^)

그러면 이제 잘 찾네요.
원격 디버깅도 해봐야하는데-_-;

 
Posted by 머드초보
,
 

저는 Visual C++ 를 손땐지 너무 오래되서 다 까먹었는데-_-; 갑자기 윈도우용 애플리케이션이 필요했어요^^

그래서 JAVA로 만들라고 했는데 친구한테 물어보는 중에 자기가 만들어 놓은게 있다면서 보내주더니 컴파일해보니 안되더군요. 제껀 Visual C++ 2008버전이였고, 친구가 만들었을 때는 뭐 다른 버전이었나봅니다.
그래서 친구가 원격으로 약 한시간정도 삽질한 결과 완벽하게 포팅을 하더군요-_-;(고마워 밥쏘마-_-;)

이제 저는 프로그램을 적용하려고 Release모드로 빌드를 하고 생성된 exe파일을 해당 컴퓨터에 복사를 하고 실행을 했습니다.

사용자 삽입 이미지


"응용 프로그램 구성이 올바르지 않기 때문에 이 응용 프로그램을 시작하지 못했습니다. 이 문제를 해결하려면 응용 프로그램을 다시 설치하십시오."
라는 것을 보았습니다. 음....대충보니 라이브러리같은 게 없어서 그런듯한데요.
해결 방법은 2가지가 있답니다.
1. 인스톨러를 만드는법-_-; 이건 안해봤으니 패스-_-;

2. 해당 라이브러리를 같은 경로에 복사하는 법 ^^
간단합니다.
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT 이 경로에 있는 모든파일을 다 복사해서 실행(exe)파일에 같이 넣어두면 돼요 ^^
Microsoft.VC90.CRT.manifest, msvcm90.dll, msvcp90.dll, msvcr90.dll 요고 4개만 복사하면 돼요 ^^
 
Posted by 머드초보
,
 

아.....자꾸 까먹어요. 포인터에 대한 개념이 점점 사라지고 있는 느낌이네요-_-;

얼마전 동적할당을 할 일이 생겨서 포스팅해둡니다.










[code]#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define NUM 2 /*  동적으로 할당할 수 */
#define LENGTH 80 /*  문자열길이 */

int main(void) {
 char **id;
 int i;
 
 id = (char **)malloc(NUM * sizeof(char *));
 for (i = 0; i < 2; i++) {
  id[i] = (char *)malloc(LENGTH * sizeof(char));
 }
 strcpy(id[0], "mudchobo");
 strcpy(id[1], "idoori");
 
 for (i = 0; i < 2; i++) {
  printf("%s\n", id[i]);
 }
 
 return EXIT_SUCCESS;
}
[/code]
아.....저렇게 하는 거군요-_-;

 
Posted by 머드초보
,
 















그냥 나중에 필요할 것 같아 적어 놓습니다.

[code]
#include <stdarg.h>
#include <stdio.h>

void Display(char* content, ...) {
 if (content == 0)
  return;

 va_list arg;
 char result[256] = "";

 va_start(arg, content);

 vsnprintf(result, sizeof(result), content, arg);
 printf("%s", result);

 va_end(arg);
}
 
int main() {

 Display("%s", "mudchobo");
 printf("\n");

 Display("%s %s", "mudchobo", "darkness");
 printf("\n");

 return 0;
}
[/code]

 
Posted by 머드초보
,
 


C공부를 다시 해야할 것 같아서 IDE를 설치해야할 일이 생겼습니다. Visual Studio로만 C/C++을 해온 저는 유닉스 환경에서 해야해서 다른 IDE를 찾고 있었습니다. 이클립스를 다운 받을 때 C/C++용도 있었던 것 같았습니다.

그래서 이클립스 홈페이지가니 있더군요. 여기저기 수소문 끝에 유닉스환경에서 할 수 있는 C프로그래밍을 윈도우에서도 구축할 수 있더군요. 이런게 있을 줄이야...

우선 이클립스를 받습니다.
http://www.eclipse.org/downloads/

여기 사이트를 들어가시면 Eclipse IDE for C/C++ Developers 라고 있습니다.
운영체제에 맞는 것을 받으시구요. Linux와 MacOS도 지원하는군요!

받은다음에 적당한 폴더에 압축을 풉니다.

자 그다음 gcc, make 등을 구해야하는데 두가지 종류가 있더군요.(리눅스는 안해줘도 될꺼같군요)
Cygwin랑 MinGW 가 있는데 MinGW로 해보겠습니다. (Cygwin은 이걸로 만든 실행파일을 실행할때 dll파일이 필요하다고 하더군요)

이곳에서 MinGW를 받습니다.
http://www.mingw.org/download.shtml

받은 뒤 실행하면 다음신공하다보면 뭐 설치할 꺼냐고 묻는데 전 잘몰라서 c관련된 컴파일러는 다 설치했습니다. make랑 g++랑 objective c 컴파일러같은거 이거 3개 체크하고 설치했습니다.

그런다음에 패스를 잡아줘야합니다. gcc랑 make 등의 파일이 어디서든 실행이 되어야합니다.

패스잡는것은 비스타기준입니다.
컴퓨터(오른쪽버튼누른뒤 속성) -> 고급시스템설정 -> 고급탭에서 환경변수 클릭!
XP에서도 비슷하게 속성누르면 있을껍니다.

집에 알집이 깔려있다면 위에 알집이 PATH로 잡혀있을껍니다. 요고이 지워줍니다. 그리고 이스트소프트를 막 욕합시다.
시스템변수에 Path를 찾습니다. 그다음 MinGW/bin폴더를 패스를 잡아줍니다.
ex) ......;C:\MinGW\bin //c:\MinGW는 MinGW설치폴더

패스가 제대로 잡혔는지 보려면 시작 -> cmd를 실행해서 gcc를 실행해봅시다.
gcc: no input files라고 나오면 잘 잡힌겁니다.

그리고 이클립스에서는 make.exe파일을 make할 때 쓰는데 MinGW는 mingw32-make.exe파일이 make파일입니다. 그래서 이름을 변경하던가 이클립스 설정을 변경하던가 합니다.

첫번째 방법은 mingw32-make.exe파일을 똑같은 폴더에 복사해서 새이름으로 make로 저장합니다.

두번째 방법은 이클립스에서 변경하는 방법입니다.
Window -> Preferences -> C/C++ -> New CDT project wizard -> Makefile project를 보면

사용자 삽입 이미지

중간에 빨간상자부분이 있는데 저 부분을 mingw실행파일에 맞게 바꿔주면 됩니다.

둘중에 하나만 하면 됩니다.

이제 설정은 다 됐습니다. 언제나 그렇듯이 설정이 끝나면 헬로우 월드를 찍어봅시다-_-;
사용자 삽입 이미지

Toolchain은 MinGW로 선택을 합시다. 프로젝트이름은 HelloWorld로...-_-;

HelloWorld프로젝트이름에 오른쪽버튼을 눌러서 New -> Source File 해서 HelloWorld.c 파일을 생성합시다.

HelloWorld.c (Language : c)
#include <stdio.h>

int main(void)
{
    printf("Hello World!");
   
    return 0;
}
 

저렇게 적읍시다. 아 그리고 마지막 } 이거다음에 한칸 띄워주고 그다음칸을 한칸더 생성해줍시다. 그냥 }스페이스바하고 엔터 하고 저장합시다. 안그러면 no newline at end of file 라는 워링이 뜹니다-_-;
검색해보니 뭐 무슨 어쩌구 설명을 하는데 잘모르겠습니다-_-;

컴파일 단축키로 컴파일해봅시다. 저장하고 Ctrl + B를 누릅시다.
컴파일이 완료되면 run단축키인 Ctrl + F11을 누릅시다.

그러면 아래에 Console탭에 Hello World! 라고 뜰껍니다.
컴파일할 때 object파일인 *.o도 만들고 윈도우실행파일인 *.exe도 만들어줍니다.
 
Posted by 머드초보
,