목록컴파일 (3)
준호씨의 블로그
개발 공부를 좀 해보신 분들은 아두이노가 어떤 식으로 빌드되는지 좀 궁금해질 수 있습니다. 아두이노 IDE에서 빌드해 보면 로그가 자세히 나오지는 않아서 어떻게 빌드가 되는지 자세히 나오지는 않는데요. Preferences -> Show verbose output during: complication을 켜주면 좀 더 상세한 로그가 나옵니다. 아래처럼 말이죠. gcc로 컴파일해 보신 분들은 조금 다르지만 익숙한 빌드 명령어를 보실 수 있습니다. avr-g++명령어가 실행되는 것을 볼 수 있습니다. ... /Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno..
gcc 로 컴파일 할 때 a 라이브러리가 b 라이브러리를 필요로 한다면 -la -lb 이런식으로 라이브러리 옵션을 적어 주어야 한다. a 라이브러리에서 b 라이브러이의 func_b 함수를 호출하는데 -lb 가 없거나 -lb 가 -la 앞에 있다면 a 라이브러리에서 b 라이브러이의 func_b 함수를 찾지 못하게 된다. 그런 경우 빌드 할 때 다음과 같이 undefined reference 오류가 발생하게 된다. a.c:111: undefined reference to `func_b' 공통적으로 참조 하는 라이브러리들은 가급적 뒤쪽에 배치 해 두는 것이 속편하다.
spring boot 로 어플리케이션을 만들면 자동으로 단일 jar 파일이 생성 된다. 하지만 기존 프로젝트를 빌드 하니 프로젝트 자체만 jar 로 만들지 디펜던시들은 별도로 존재하였다. 이 경우 디펜던시들을 따로 배포해 줘야 되기 때문에 번거롭다. 그래서 인터넷을 찾아 보니 fatJar task 를 만들어서 처리하는 예제들을 종종 만나게 되었다. 유명한 블로거인 mkyong 에도 관련 내용이 있다. http://www.mkyong.com/gradle/gradle-create-a-jar-file-with-dependencies/ 하지만 굳이 fatJar 를 사용할 필요는 없다. 그냥 jar 에 from 어쩌구를 넣어 주면 된다. 다음은 예시이다. 여러 설정 값들이 있지만 이 주제와는 상관 없으므로 대충 ..