2011-12-28 2 views
0

저는 Hi-Tech C 컴파일러를 사용하고 있으며 Scons를 사용하여 프로젝트를 빌드하고자합니다. 컴파일러 실행 파일은 picc.exe입니다. 그것은 GCC와 비슷한 의미를 지니지 만, 전부는 아닙니다.scons의 기존 플래그에 추가하는 방법

기본값도 GCC로 설정하고 거기에서 수정 해보십시오. env.Program('main.c') 실행의 출력 그러나

picc -o main.o -c 

하이테크에서 C는 -o 플래그 출력 파일, 예를 들어을 의미 이 출력 될 수 있도록 -Oc:\project\output\first

어떻게, -o에 추가 않습니다

picc -omain.o -c 
+0

위의 내용에 약간 혼란 스럽습니다. picc가 "-o"와 원하는 출력 파일 이름 사이에 공백을 넣지 않아도되는지 문제가 있습니까? – acm

+0

아, 아마도 SCons의 버전과 플랫폼이 무엇인지 언급해야합니다 (위와 같은 창문처럼 보입니다). – acm

답변

2

그래서 SCons는 설치의 "도구"디렉토리에 주위를 찾습니다 파고 이러한 정의 :

cc.py: env['CCCOM']  = '$CC -o $TARGET -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES' 
cc.py: env['SHCCCOM'] = '$SHCC -o $TARGET -c $SHCFLAGS $SHCCFLAGS $_CCCOMCOM $SOURCES' 
c++.py: env['CXXCOM']  = '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES' 
c++.py: env['SHCXXCOM'] = '$SHCXX -o $TARGET -c $SHCXXFLAGS $SHCCFLAGS $_CCCOMCOM $SOURCES' 
link.py: env['SHLINKCOM'] = '$SHLINK -o $TARGET $SHLINKFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' 
link.py: env['LINKCOM']  = '$LINK -o $TARGET $LINKFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' 

아마도 env에있는 이들 요소를 -o와 $ TARGET에 인접한 버전으로 덮어 쓰기 만하면됩니다. 변수들에 중괄호를 써야 할 필요가 있다고 생각합니다.

env['CCCOM'] = '$CC -o${TARGET} -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES' 
+0

제안 해 주셔서 감사합니다. 아니면 그냥 기본 설정을 무시하는 대신 맞춤 빌더를 만들어야합니다. – freonix

관련 문제