Makefile.zip



 

리눅스에서 코드 작성 후 컴파일 하기 힘든 분들을 위한 Makefile

 

예전에 리눅스에서 작업할때 사용하던 Makefile 을 좀 수정해서 배포합니다.

 

첨부된 Makefile 을 c, c++ 소스가 있는 디렉토리에 넣어주시고

 

vi Makefile 로 파일을 엽니다.

 

 



위에 보이는 내용중에

 

CC, DEFLIST, LIBLIST, EXENAME을 각 프로젝트에 맞게 수정하셔서 사용하시면 됩니다.

 

첨부된 Makefile 은 라즈베리파이에서 wiringPi 프로젝트일 경우 EXENAME 만 변경하셔서 사용하시면 됩니다.

 


 

 

 

make 명령 입력시 위와 같이 디렉토리 안에 있는 모든 *.c, *.cpp 파일이 Release 모드로 컴파일 됩니다.

 

make debug 입력시 컴파일에 -g 옵션이 붙어 Debugging 모드로 컴파일 됩니다.

 

make clean 입력시 *.o, *.dbg_o, EXENAME 파일이 삭제 됩니다.

 

 

파일 내용은 뭐.... 조금만 살펴 보셔도 충분히 활용 가능하게끔 해두었습니다.


퍼가실때는 출처를 밝혀 주세요.






2014/08/25


디버깅이 안된다는 분이 계셔서 확인해 본 결과 Object 컴파일 시 -g 옵션이 빠져있네요 ㅠㅠ


다시 수정해서 올려둡니다.

'OS > Linux' 카테고리의 다른 글

리눅스 CLI 로 인터넷 속도 측정  (1) 2018.07.13
리눅스 터미널 Ctrl s 입력시 멈춤  (0) 2016.10.12
삼바 설정  (0) 2015.09.01
FTP row CMD 목록  (0) 2014.07.28
CentOS 7 방화벽  (0) 2014.07.14
만능 Makefile  (8) 2014.07.10
Ubuntu 14.04 XRDP - 우분투 14.04 XRDP 설정  (0) 2014.07.02
yum 속도 개선  (0) 2011.10.07
Linux Bonding 구성  (0) 2011.06.01
  1. 2014.08.25 16:26

    비밀댓글입니다

    • BlogIcon Acidpop acidpop 2014.08.25 16:39 신고

      안녕하세요~!

      Makefile 내용 중 다음 내용을 찾아서 바꿔보시겠어요?

      117 .c.dbg_o :
      118 @echo "src > $(ANSI_H_YELLOW)$< ...$(ANSI_NORMAL)"
      119 @$(CC) $(CFLAGS) $< -o $@ $(IPATHS) $(DEFLIST)
      120 .cpp.dbg_o:
      121 @echo "src > $(ANSI_H_YELLOW)$< ...$(ANSI_NORMAL)"
      122 @$(CC) $(CFLAGS) $< -o $@ $(IPATHS) $(DEFLIST)


      위 부분중 -o 앞에 -g 옵션 추가

      117 .c.dbg_o :
      118 @echo "src > $(ANSI_H_YELLOW)$< ...$(ANSI_NORMAL)"
      119 @$(CC) $(CFLAGS) $< -g -o $@ $(IPATHS) $(DEFLIST)
      120 .cpp.dbg_o:
      121 @echo "src > $(ANSI_H_YELLOW)$< ...$(ANSI_NORMAL)"
      122 @$(CC) $(CFLAGS) $< -g -o $@ $(IPATHS) $(DEFLIST)

  2. 2014.09.02 20:09

    비밀댓글입니다

    • BlogIcon Acidpop acidpop 2014.09.03 09:28 신고

      가능합니다.
      각각 SubDir 에 Makefile 을 넣어 놓고
      최상위 디렉토리에 MakeFile 을 작성하면 됩니다.

      가장 손쉬운 방법은 최상위 MakeFile 에서 다음 방식대로 하면 될듯 합니다.

      Sub1, Sub2 디렉토리가 있는 가정하에
      각각 서버 디렉토리에는 만능 Makefile 을 넣어 놓고
      최상위 Makefile 은 다음과 같이 작성 하는 방식입니다.

      SUBDIRS = sub1 sub2


      default:
      @echo Release Mode - make release
      @echo Debug Mode - make debug

      release:
      for list in $(SUBDIRS); do \
      make -C $$list release; \
      done


      debug:
      for list in $(SUBDIRS); do \
      make -C $$list release; \
      done




      위 Makefile 작성시 for 문 사용하는곳에 보면 역슬래시(\) 가 들어가있는데

      복사/붙여넣기 하시면 syntax error: unexpected end of file
      라고 에러가 나옵니다.
      역슬래시 부분 지우셨다가 역슬래시 입력후 바로 엔터
      이런식으로 입력을 해주셔야 합니다.
      정 안되면 for list in $(SUBDIRS); do make -C $$list release; done

      이런식으로 한줄에 써주셔도 됩니다.

  3. 2014.09.03 10:34

    비밀댓글입니다

    • BlogIcon Acidpop acidpop 2014.09.03 10:43 신고

      Main 디렉토리에 있는 Makefile 을 조금 수정하시면 되겠네요.

      release : $(OBJS)
      @echo "$(ANSI_H_BLS_GREEN)$(ANSI_BOLD)Release build start...$(ANSI_NORMAL)"

      이 부분 바로 아래에
      for list in $(SUBDIRS); do make -C $$list release; done

      이 구문만 추가해서 넣으시면 됩니다.

      debug 도 마찬가지구요.

  4. 2014.09.03 10:55

    비밀댓글입니다



FAIL - Application at context path /subsonic could not be started





Tomcat 8  버전에 Subsonic 4.9 버전을 설치.


subsonic.war 파일을 Deploy 해서 올리면


처음에는 잘 작동 한다.


하지만 Tomcat 에서 Stop 한 후에 다시 Start 를 하면 위 오류 메시지가 발생한다..


몇일 동안 삽질 끝네 subsonic 로그를 보니 다음과 같은 에러 로그가 보인다.



ERROR DaoHelper - Failed to initialize database.
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: The database is already in use by another process: org.hsqldb.persist.NIOLockFile@2d6451a6[file =/var/subsonic/db/subsonic.lck, exists=true, locked=false, valid=false, fl =null]: java.lang.Exception: checkHeartbeat(): lock file [/var/subsonic/db/subsonic.lck] is presumably locked by another process.



저 파일을 다른 프로세스가 잠그고 있다는 말인듯 하다.


혹시나 해서


/var/subsonic/db/subsonic.lck 파일을 삭제해보았다.


Tomcat 에서 다시 Start!


잘 된다.



물론 서비스는 Stop 하였다가 다시 Start 하면 서비스가 안올라가는 문제가 있다.


버그인듯 -_-;


그때마다 subsonic.lck 파일을 삭제해주면 된다.

우분투 14.04 LTS 에서는 vsftp 3.0.2 가 설치되어 있다.


구글링을 해봐도 vsftpd 2.3의 버그라고 하면서 3.0.2 를 설치하라고 한다 -_-;


이미 3.0.2 버전임에도 500 OOPS: vsftpd: refusing to run with writable root inside chroot() 이 오류가 나온단 말이지..


또 다시 구글링!


그리고 찾아낸 방법


일단 chroot 관련 설정을 사용하면 위 오류가 발생한다.


각 사용자 별로 상위 디렉토리 이동을 막고 싶을때는 다음과 같이 설정 한다.


chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES
seccomp_sandbox=NO



allow_writeable_chroot 와 seccomp_sandbox=NO 를 설정하면 정상적으로 로그인 된다.




N54L 에 우분투 데스크탑 버전 설치가 완료 되었다면


가장 먼저 해야 할 일은 SSH 서비스를 올리는것이다.


SSH 서비스가 올라가 있어야만 원격지에서 콘솔로 접속을 할 수 있기 때문이다.


우분투 14.04 데스크탑 버전은 SSH 가 기본적으로 설치되어 있지 않다.


다행히도 우분투는 apt-get 을 통해서 아주 아주 편하게 설치 할 수 있다.



다음 명령어를 입력한다.



sudo apt-get install openssh-server 


만약 설치가 안된다면


sudo apt-get update


명령을 이용하여 최신버전으로 유지시킨후 다시 설치한다.


설치 후 ps -ef | grep ssh 를 입력하여 sshd가 실행되어 있는지 확인한다.


HP N54L 서버에 우분투를 설치




준비물은 다음과 같다.


1. 4GB 이상의 USB 메모리 (필자는 메모렛 듀얼 골드 8GB를 사용)

2. USB CD 영역 유틸리티 준비


USB_CD영역.zip


3. 설치할 우분투 ISO 이미지

http://www.ubuntu.com 에 가서 이미지 다운로드

또는 아래 링크를 클릭하여 우분투 14.04 LTS 64bit 를 다운로드 받기

http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso




다운로드 받은 ISO 이미지를 USB에 CD 처럼 만드는 방법은 아래 링크 참조


http://qkrtmdqo2003.blog.me/150133401615



USB에 우분투 CD영역을 생성 하였다면


USB 를 서버에 꽂은 후 전원을 켜면 우분투 설치 화면이 나온다.


초기 화면에서 언어만 한국어로 바꾸면 충분이 따라 할 수 있을 정도이니


그냥 다음, 계속 등을 클릭하여 설치를 한 후 사용





※ 이 포스팅은 스크린샷 떠놓은게 없어서 부실합니다. 우분투 설치 방법은 수많은 블로그 글이 있으니 참고하시기 바랍니다.





CentOS 를 사용하다가 패키지들의 버전이 워낙 구버전들만 올라와있어서 우분투로 갈아타보았다.


기존 CentOS 에서는 XRDP 를 잘 사용했었는데..


우분투 14.04 에서는 xrdp 를 설치하고 접속을 하니 회색 줄이 잔뜩 있는 화면에 마우스 포인터는 X 로 나온다 -_-;;


구글링 검색 결과


xsession 문제!


14.04 에서는 아래의 xsession 들을 지원하지 않는다라고 한다.



gnome-session --session=gnome-classic
gnome-session --session=gnome-fallback
gnome-session –session=ubuntu-2d 


위와 같이 설정된것들을 다음과 같이 변경한다.


vi ~/.xsession


xfce4-session


위와 같이 변경 후에 저장


sudo service xrdp restart


한 다음 다시 원격데스크탑으로 접속해보면 잘 되는것을 볼 수 있다.



※ 출처 : http://askubuntu.com/questions/449785/ubuntu-14-04-xrdp-grey



'OS > Linux' 카테고리의 다른 글

리눅스 CLI 로 인터넷 속도 측정  (1) 2018.07.13
리눅스 터미널 Ctrl s 입력시 멈춤  (0) 2016.10.12
삼바 설정  (0) 2015.09.01
FTP row CMD 목록  (0) 2014.07.28
CentOS 7 방화벽  (0) 2014.07.14
만능 Makefile  (8) 2014.07.10
Ubuntu 14.04 XRDP - 우분투 14.04 XRDP 설정  (0) 2014.07.02
yum 속도 개선  (0) 2011.10.07
Linux Bonding 구성  (0) 2011.06.01

1. yum install mysql-server mysql-devel ImageMagick ImageMagick-devel ruby ruby-devel rubygems, rubygems-devel
2. Install rvm in shell:  \curl -sSL https://get.rvm.io | bash -s stable
3. rvm install 1.9.3 ; rvm use 1.9.3
4. gem install rails rmagick mysql2 bundler
5. Start MySQL service. According to redmine’s online installation manual, create database, grant user privileges and change the database.yml in redmine config directory.
6. Install redmine bundle: bundle install –without development test
7. rake generate_secret_token
8. RAILS_ENV=production rake db:migrate
9. RAILS_ENV=production rake redmine:load_default_data
10. Add linux user and group: useradd redmine
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R redmine:redmine files log tmp public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets
11. Start it: ruby script/rails server webrick -e production




http://www.raymondchen.com/?p=895

https://code.google.com/p/transmission-control/


위 사이트에서 지원중.


설치 방법.


임시 디렉토리로 이동


wget https://transmission-control.googlecode.com/files/tr-control-easy-install.sh


sh tr-control-easy-install.sh


여기까지만 하면 한글 언어팩이 없음.


cd /usr/share/transmission/web/lang


위 경로로 이동 후에


wget "https://transmission-control.googlecode.com/svn/trunk/lang/ko.js"




다운로드 된 후에


다음 파일 수정


vi _languages.js


열어 보면


system.languages = {
    "zh-CN":"简体中文|Chinese(Simplified)"
    ,"zh-TW":"繁體中文|Chinese(Traditional)"
    ,"en":"English"
    ,"ru":"Русский(Russian)"
    ,"es":"Español(Spanish)"
    ,"pl":"Polski(Polish)"
    ,"hu":"Magyarország(Hungarian)"
    ,"ro":"Română(Romanian)"
    ,"it":"Italiano(Italian)"
    ,"pt-BR":"Brazilian Portuguese"
    ,"nl":"Dutch"
    ,"fr":"French"

};


이런식으로 되어 있다.


다른 언어들은 필요 없으므로 다음과 같이 수정한다.


system.languages = {
    "ko":"한글"
    ,"en":"English"

};



위와 같이 수정 후에


service transminssiond restart



+ Recent posts