소스안에서 사용하는 문자열이 매번 컴파일 할때마다.. 달라져야 하거든요.. 그래서.. 소스자체를 수정하여 새로 컴파일 해야합니다. 그런데.. make를 사용하여 옵션형식으로 명령어를 주어 외부에서 문자열을 입력하여 소스안에서도 그 문자열이 적용될수 있게 할수 있는 방법이 있을까요?
(Makefile)
CFLAGS=..... -DTEST_STRING=\"$(USER_STRING)\" ....
(main.c) char *test_string = TEST_STRING;
(compiling) USER_STRING="test string" make
오~ 그렇군여 잘 알았습니다. 덕택에 저도 배웠습니다. 감사!!
#Open Source Open Mind.....# 궁극의 기술을 익힐 그날까지...
lbdragon...
감사합니다.. 근데.. make 명앞에.. USER_STRING=.... 이런식으로 써도 되는건가요? 구체적으로.. compiling 쪽은 무슨 말인지...잘.. ㅜㅜ; 모르겠어요.. 자세히좀 갈쳐주시면 안되나요...
make VAR=FOO ... 이렇게 하면 VAR라는 환경변수에 FOO라는 값이 들어가는 식입니다. Makefile 내부에서 $(VAR) 같은 식으로 접근하면 됩니다.
make VAR=FOO ...
-DAA=FOO 이렇게 하면 소스파일 안에서 #define AA FOO 를 한것과 동일한 결과가 됩니다. 컴파일러(프리프로세서)가 처리해주지요.
-DAA=FOO
#define AA FOO
컴파일 옵션에 대한 문서를 찾아보시면 도움이 될겁니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
(Makefile)CFLAGS=..... -DTEST_STRING
(Makefile)
CFLAGS=..... -DTEST_STRING=\"$(USER_STRING)\"
....
(main.c)
char *test_string = TEST_STRING;
(compiling)
USER_STRING="test string" make
오~ 그렇군여 잘 알았습니다.덕택에 저도 배웠습니다. 감사!!
오~ 그렇군여 잘 알았습니다.
덕택에 저도 배웠습니다. 감사!!
#Open Source Open Mind.....#
궁극의 기술을 익힐 그날까지...
lbdragon...
감사합니다..근데.. make 명앞에.. USER_STRING=...
감사합니다..
근데.. make 명앞에.. USER_STRING=.... 이런식으로 써도 되는건가요?
구체적으로.. compiling 쪽은 무슨 말인지...잘.. ㅜㅜ; 모르겠어요..
자세히좀 갈쳐주시면 안되나요...
[code:1]make VAR=FOO ...[/code:1]이렇게 하
make VAR=FOO ...
이렇게 하면 VAR라는 환경변수에 FOO라는 값이 들어가는 식입니다. Makefile 내부에서 $(VAR) 같은 식으로 접근하면 됩니다.-DAA=FOO
이렇게 하면 소스파일 안에서#define AA FOO
를 한것과 동일한 결과가 됩니다. 컴파일러(프리프로세서)가 처리해주지요.컴파일 옵션에 대한 문서를 찾아보시면 도움이 될겁니다.
댓글 달기