디버깅 기호를 사용하거나 사용하지 않고 프로그램을 컴파일하는 컴파일 스크립트가 있습니다.
read
bash 프롬프트( )를 통해 사용자에게 다음과 같은 디버그 버전을 원하는지 물어보고 싶습니다 .
compiler_options_for_debug_version=''
debug_flag=''
if [[ "$debug_switch" == "Y" ]]; then
compiler_options_for_debug_version=("CFLAGS=\"-g -O0\"")
debug_flag='--with-debug'
fi
그러나 이것은 CFLAGS="-g -O0"
오류를 발생시키기 때문에 약간의 두통을 안겨줍니다.
vagrant@node02:~$ compiler_options_for_debug_version=("CFLAGS=\"-g -O0\""); $compiler_options_for_debug_version;
CFLAGS="-g: command not found
나는 시도했다:
compiler_options_for_debug_version=("CFLAGS=\"-g -O0\"")
compiler_options_for_debug_version="CFLAGS=\"-g -O0\""
compiler_options_for_debug_version='CFLAGS="-g -O0"'
CFLAGS="-g -O0"
나는 여기서 다음과 같은 것을 기대합니다 :
$compiler_options_for_debug_version ./configure --with-luajit --with-http_postgres_module ...
따라서 다음으로 확장되어야 합니다.
CFLAGS="-g -O0" ./configure --with-luajit --with-http_postgres_module ...
최후의 수단으로 if [ ... ]
명령문을 추가하고 하드코딩 할 수 있지만 CFLAGS="-g -O0"
올바른 방법으로 수행하는 것도 가능해야 합니다.
답변1
변수에 값을 넣어주시면 됩니다
compiler_options_for_debug_version=""
if something; then
compiler_options_for_debug_version="-g -O0"
fi
그런 다음 변수를 사용할 때 변수를 인용해야 합니다. 이는 똑같이 중요합니다.
CFLAGS="$compiler_options_for_debug_version" ./configure ...