예를들어$export HEADER_PATH=/usr/local/myprg/include 이렇게 해놓고 C구문에서#include "$HEADER_PATH/my_header.h" 이런식으로 사용하려면 C구문에서 어떻게 하면 좋을까요?
$export HEADER_PATH=/usr/local/myprg/include
#include "$HEADER_PATH/my_header.h"
(수정)
음 -.- 제가 생각한대로는 해보니까 안되네요.
컴파일 스크립트를 하나 만들어서..
bash 스크립트에서 환경변수를 읽어오고
sed 등으로..
#include "___PATH___/myinclude.h"
이런식에서.. ___PATH___ 을 정규표현식으로 치환해주는 방법은 확실히 될테구요.
흐흐;; 고수님들이 더 좋은 답변을 ^^;
---------------------------------------------------------------------------http://jinhyung.org -- 방문해 보세요!! Jenix 의 블로그입니다! :D
환경 변수를 읽어나 쓰기위해선 setenv(), getenv()를 사용하시면 됩니다.
Windows, Unix, Linux 같은방법 사용합니다.
수정합니다. 확인해 보니까.. 질문을 제가 끝까지 못읽었군요. setenv, getenv는 환경변수는 읽을 수 있어도 include 문에 대입할 수 없습니다. 죄송합니다.
제 생각엔 인클루드에 넣으려면 아무래도 Makefile을 만들어서
Makefile에서 환경변수를 읽어오는게 가장 간단할듯 싶은데요...
GNU make에 그런기능이 있는지 모르겠네요
configure를 만들수도 없는 상황이라서...
dead or alive(0 or 1)
제 생각엔 인클루드에 넣으려면 아무래도 Makefile을 만들어서 Makefile에서 환경변수를 읽어오는게 가장 간단할듯 싶은데요... GNU make에 그런기능이 있는지 모르겠네요 configure를 만들수도 없는 상황이라서...
.c.o: $(CC) -I$(INCLUDE_PATH) -c -o $@ $<
include 경로는 컴파일러, 정확히는 전처리기의 몫입니다. C 명세에서는 코드내에 환경변수나 pragma 등을 이용하여 전처리기에 전달하는 것이 없으므로, -I 옵션을 사용하여 디렉토리를 추가로 지정해주는 것이 가장 널리 쓰이는 방법입니다.
따라서 Makefile 의 -I 뒤를 어떻게 만들어 줄것인지, configure 를 통해서 각 환경에 맞게 설정하는 방법이 좋습니다.
---http://coolengineer.com
#include <stdio.h> int main(int argc, char **argv, char **envp) { int i=0; while( *(envp+i)!=NULL){ printf("env[%d]= %s\n",i, *(envp+i)); i++; } return 0; }
환경 변수를 가져올 수는 있습니다...
나머진 pynoos 님 말씀대로^^;;
남으로 창을 내겠소. 밭이 한참갈이 괭이로 파고 호미론 김을 메지요. 구름이 꼬인다 갈리있소. 새들의 노래는 공으로 들으랴오. 강냉이가 익거든 와자셔도 좋소. 왜 사냐건 웃지요.
바로 밑 강좌,잣료실에 똑같은 기능을 하는 코드가 있군요...-.-;;;;;;;;;;;;
#include 의 디렉토리만 설정해야한다면, 굳이 getenv() 가 필요할것 같지는 않습니다. Makefile 에 -I 만 설정해주면, 알아서 될것같은데요.
삽질의 대마왕...
텍스트 포맷에 대한 자세한 정보
<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]
make 를 이용..
(수정)
음 -.- 제가 생각한대로는 해보니까 안되네요.
컴파일 스크립트를 하나 만들어서..
bash 스크립트에서 환경변수를 읽어오고
sed 등으로..
#include "___PATH___/myinclude.h"
이런식에서.. ___PATH___ 을 정규표현식으로 치환해주는 방법은 확실히 될테구요.
흐흐;; 고수님들이 더 좋은 답변을 ^^;
---------------------------------------------------------------------------
http://jinhyung.org -- 방문해 보세요!! Jenix 의 블로그입니다! :D
getenv
환경 변수를 읽어나 쓰기위해선
setenv(), getenv()를 사용하시면 됩니다.
Windows, Unix, Linux 같은방법 사용합니다.
수정합니다.
확인해 보니까.. 질문을 제가 끝까지 못읽었군요.
setenv, getenv는 환경변수는 읽을 수 있어도 include 문에 대입할 수 없습니다.
죄송합니다.
제 생각엔 인클루드에 넣으려면 아무래도 Makefile을 만들어서
제 생각엔 인클루드에 넣으려면 아무래도 Makefile을 만들어서
Makefile에서 환경변수를 읽어오는게 가장 간단할듯 싶은데요...
GNU make에 그런기능이 있는지 모르겠네요
configure를 만들수도 없는 상황이라서...
dead or alive(0 or 1)
[quote="jx2h"]제 생각엔 인클루드에 넣으려면 아무래도 Make
이 방법이... 가장 쉬울 듯 합시다.
일케 하심이...
include 경로는 컴파일러, 정확히는 전처리기의 몫입니다.C 명세
include 경로는 컴파일러, 정확히는 전처리기의 몫입니다.
C 명세에서는 코드내에 환경변수나 pragma 등을 이용하여 전처리기에 전달하는 것이 없으므로, -I 옵션을 사용하여 디렉토리를 추가로 지정해주는 것이 가장 널리 쓰이는 방법입니다.
따라서 Makefile 의 -I 뒤를 어떻게 만들어 줄것인지, configure 를 통해서 각 환경에 맞게 설정하는 방법이 좋습니다.
---
http://coolengineer.com
[code:1]#include <stdio.h>
환경 변수를 가져올 수는 있습니다...
나머진 pynoos 님 말씀대로^^;;
남으로 창을 내겠소.
밭이 한참갈이 괭이로 파고 호미론 김을 메지요.
구름이 꼬인다 갈리있소. 새들의 노래는 공으로 들으랴오.
강냉이가 익거든 와자셔도 좋소.
왜 사냐건 웃지요.
바로 밑 강좌,잣료실에 똑같은 기능을 하는 코드가 있군요...-.-;;;
바로 밑 강좌,잣료실에 똑같은 기능을 하는 코드가 있군요...-.-;;;;;;;;;;;;
남으로 창을 내겠소.
밭이 한참갈이 괭이로 파고 호미론 김을 메지요.
구름이 꼬인다 갈리있소. 새들의 노래는 공으로 들으랴오.
강냉이가 익거든 와자셔도 좋소.
왜 사냐건 웃지요.
#include 의 디렉토리만 설정해야한다면, 굳이 getenv() 가
#include 의 디렉토리만 설정해야한다면, 굳이 getenv() 가 필요할것 같지는 않습니다.
Makefile 에 -I 만 설정해주면, 알아서 될것같은데요.
삽질의 대마왕...
댓글 달기