본문 바로가기

2016/04

리눅스에서 명령어로 IP 등록하기 (ifconfig) ip 설정하기# ifconfig eth0 192.168.123.2 netmask 255.255.255.0 up 게이트웨이 등록하기# route -FC // 이러면 안될지도 모른다...# route add default gw 192.168.0.1 # route -FC // 이거 안해도 사실 게이트 웨이 됨... 출처 : http://intelisd.tistory.com/entry/ifconfig-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4%EC%84%9C-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EC%9E%A5%EC%B9%98-eth0-%EC%9E%A5%EC%B9%98-%ED%99%9C%EC%84%B1%ED%99%94 더보기
ARM 크로스 컴파일 환경 구축하기 참고로 필자의 서버환경은 32bit - 우분투 11 버젼을 활용하였다. 기본적으로 우분투는 apt-get 을 이용하여 크로스 컴파일 환경 구축을 간편하게 해줄 수 있다. ------------------------------------------------------------------------------------------root@ubuntu:~/test# apt-get install gcc-arm-linux-gnueabi 이후 간편성을 위해 심볼릭 링크 정도 걸어두면 편하다. root@ubuntu:~/test# whereis arm-linux-gnueabi-gcc arm-linux-gnueabi-gcc: /usr/bin/arm-linux-gnueabi-gcc /usr/share/man/man1/.. 더보기
C/C++ library 만들기 1) Library(라이브러리) 반복적으로 사용하는 기능들을 함수로 정의하여 필요할 때 마다 호출하여 사용하는 것이 좋다. 이러한 것들을 모아 놓은 것을 Library라고 한다. library 는 보통 index(목차) + files(a.o + b.o + c.o + ....) 로 구성되어 있다고 볼 수 있다. unix/linux 에서 Library 파일은 일반적으로 lib 로 시작한다. C언어 표준은 일반 프로그래머들이 공통적으로 사용할 만한 Library 들을 제공하며, 이런 standard library(표준 라이브러리)라고 한다. unix/linux에서 standard library 들은 보통 /lib, /usr/lib 에 존재하고 lib*.a(static library, 정적 라이브러리), lib.. 더보기
gcc undefined reference to 오류 처리 하기 LINUX에서 순서가 매우 중요한 것 같습니다. T.T gcc test.c test.c:(.text+0x49): undefined reference to test.c:(.text+0x71): undefined reference to test.c:(.text+0x82): undefined reference to test.c:(.text+0xaa): undefined reference to test.c:(.text+0xbb): undefined reference to test.c:(.text+0xe3): undefined reference to test.c:(.text+0xf4): undefined reference to test.c:(.text+0x130): undefined reference to tes.. 더보기
라이브러리 만들기 1, 라이브러리(Library)라이브러리는 유사한 기능을 하는 컴파일된 함수나 클래스의 집합입니다. 이미 컴파일되었기 때문에 다시 컴파일할 필요없이 다른 목적파일이나 라이브러리와 링크만 해서 사용할 수 있습니다.라이브러리의 종류정적 라이브러리(lib) : 링크 시간에 실행파일(exe)에 포함된다.같은 라이브러리도 실행파일마다 각각 포함된다.동적 라이브러리(dll) : 실행파일에 포함되지 않고 실행 시간에 메모리에 로드된다.같은 라이브러리는 공유되며 각각 메모리를 차지하지 않는다. 아래 두 그림은 정적 라이브러리와 동적라이브러리의 동작 방법입니다. 정적 라이브러리는 링크 시간에 실행파일에 포함됩니다. 기억하세요. 동적라이브러리는 실행시간에 실행 프로세스 주소 공간으로 로드됩니다. 2, 라이브러리 만들기라이.. 더보기
Make 기반 빌드 시스템: Makefile 기초 Makefile 기초간단한 예제리눅스 상에서 IDE 없이 C/C++로 일반적으로 어떤 실행 프로그램을 만들 때에는, 보통 gcc 와 make 를 가지고 시작합니다. 적당한 오픈 소스 프로젝트의 소스에 있는 Makefile를 기반으로 시작할 수 있겠지만, make에 대한 기본적인 공부도 할겸, 일단은 간단한 예제로부터 시작해 보겠습니다.간단한 네트워크 프로그램을 작성할 일이 생겼다고 해 보죠. 다행히 여러분은 이미 예전에 작성해 둔 소켓 모듈(MySocket.c, MySocket.h)들이 있기 때문에, 그리 어려운 일은 아닙니다. MyClient.c이라는 파일에다 MySocket.h를 include해서 socket 모듈에 있는 socket 관련 함수를 쓰고, 몇 가지 필요한 기능만 추가해서, MyClien.. 더보기
남의 라이브러리 컴파일시 막힐 경우 남의 라이브러리를 이용하여 컴파일을 할 경우, 막힐때가 있다.이번에 막힌건 남의 라이브러리를 사용하여 개발을 할때에/라이브러리경로/라이브러리이름.a: could not read symbols: File format not recognized라는 에러가 나온 경우이다.에러의 원인을 몰라서 검색을 계속 하던중, 64비트로 컴파일 된것이 아닌가 라는 생각이들었고, 아는분에게 물어봤는데 >file 아카이브.a나 >objdump -a 아카이브.a 를 해보라는 것이었다.file이라는 명령어는 Determine file type of FILEs 이라하고objdump라는 명령어는 Display information from object 라고한다.정확히는 모르겠고, 화일의 정보를 보여주는 명령어들로 이해했는데 ㅎ 여기서.. 더보기
캐스트 연산자 reinterpret_cast C++의 4가지 캐스트 연산자에 대한 이야기 중 네 번째다.이번은 그중에서 reinterpret_cast 에 대해서 이야기한다. 자...이제 C++ 캐스트 연산자의 복병이 등장한다.이전에 static_cast 이야기를 하면서 살짝 사기를 쳤다.C 스타일의 캐스팅과 가장 비슷한 기능을 하는 무적의 캐스팅은 그 이름도 복잡한 reinterpret_cast 다. 이 캐스트 연산자는 C 스타일의 캐스팅만큼은 아니지만 별반 차이 없이 무배뽀다.캐스팅 대상을 캐스팅 타겟 타입으로 비트단위로 다시 재해석한다고 보면 된다.다른 캐스트 연산자가 처리하지 못하고 남은 뒤치다꺼리를 모두 한다.다만 const_cast 의 역할인 상수성을 날린다거나 하는 등의 기능은 수행하지 못한다. - reinterpret_cast 사용re.. 더보기