본문 바로가기

반응형

리눅스

(13)
FIFO (named PIPE) 를 이용한 리눅스 콘솔 채팅 FIFO 로 채팅도 가능하지 않을까 라는 쓸때없는 생각에서 시작하여 만들게 되었습니다. 채팅이라고는 하나 네트워크 통신이 들어가지 않았습니다. 여러 프로세스를 실행하여 통신하는 프로그램입니다. 실제로 쓸일은 절대! 없을 것이라고 생각합니다. 위 이미지는 우분투에서 컴파일하여 실행한 모습입니다. 정상 동작하나... 서버가 꺼져버리면 버그가 발생합니다; 대충 흐름도를 그림으로 그려 보았습니다. 아이패드로 처음 그려보는 거라....;;;;; 이번 연습으로 다음에는 더 잘 그릴 수 있겠지요.. 연수원에서 새벽에 작업한 것이여서 문제가 많아요.... 그래도 소스를 같이 올려 봅니다.
공유 라이브러리 생성, 그리고 사용 공유 라이브러리 소스 파일 : abc.c 컴파일할 실행 소스 파일 : main.c libabc.so 공유 라이브러리 생성 #gcc -fPIC -c abc.c #gcc -shared -Wl-soname,libabc.so.1 -o libabc.so.1 abc.o #ln libabc.so.1 libabc.so 공유 라이브러리를 사용하여 컴파일 1 #gcc -c main.c #gcc -o runfile main.o -labc -L. 공유 라이브러리를 사용하여 컴파일 2 #vim ~/.bashrc export LD_LIBRARY_PATH=[libabc.so가 있는 경로]:$LD_LIBRARY_PATH #source ~/.bashrc #gcc -o runfile main.o -labc 실행 #./runfile 실행..
.bashrc 수정후 적용하기 .bashrc를 수정하면 다시 로그인해야 적용됩니다. 터미널을 종료후 다시 실행하면 적용됩니다. 하지만 source ~/.bashrc 를 실행하게 되면 터미널 종료 없이 바로 적용됩니다.
크로스 컴파일시 cannot find -lbluetooth 오류 크로스 컴파일시 오류 arm-linux-gcc -o test test.c -lbluetooth /usr/local/arm-linux/lib/gcc-lib/arm-linux/3.2.1/../../../../arm-linux/bin/ld: cannot find -lbluetooth collect2: ld returned 1 exit status 라이브러리를 못찾는 문제입니다. 다음과 같이 라이브러리를 지정하면 컴파일이 가능합니다. arm-linux-gcc -o test test.c -L/usr/local/arm-linux/lib -lbluetooth
BlueZ 를 사용할때 컴파일 방법 BlueZ 라이브러리를 이용하여 프로그래밍을 할때 컴파일을 하였는데 /tmp/ccO6DVsB.o(.text+0x102): In function `main': : undefined reference to `ba2str' collect2: ld returned 1 exit status 이와 같은 오류가 뜬다면 옵션을 주지 않아서 입니다. gcc -o test test.c -lbluetooth -lbluetooth 를 붙여주면 오류없이 컴파일 됩니다. gcc 뿐만 아니라 g++ 도 같은 옵션이 존재하는 것 같습니다.

반응형