./configure에 여러 -I, -L 및 -l 플래그를 어떻게 넣나요?

./configure에 여러 -I, -L 및 -l 플래그를 어떻게 넣나요?

을 사용하려고합니다 ./configure.

나는 가지고있다

  1. 세 개의 포함 디렉터리

    -I/path1/include
    -I/path2/include
    -I/path3/include
    
  2. 두 개의 연결된 디렉터리

    -L/path1/lib
    -L/path2/lib
    
  3. 두 가지 -l로고 옵션

    -ltensorflow
    -lasan
    
  4. 두 개의 컴파일 플래그

    -O3
    -g
    

이러한 모든 플래그를 옵션으로 어떻게 효율적으로 넣을 수 있습니까 ./configure?

답변1

이를 수행하는 표준적인 방법은 값을 제공하는 것입니다.다양한 변수./configure통화 중 :

./configure CPPFLAGS="-I/path1/include -I/path2/include -I/path3/include" \
            CFLAGS="-O3 -g" \
            LDFLAGS="-L/path1/lib -L/path2/lib" \
            LIBS="-ltensorflow -lasan"

C++ 컴파일러를 사용하는 경우 CXXFLAGS대신(또는 추가로)을 지정합니다 CFLAGS.

이러한 변수는 환경에서도 설정할 수 있지만권장되는 방법은 명령줄 인수로 지정하는 것입니다.재사용을 위해 값을 저장하기 위해. 바라보다컴파일 시간 강제 적용 범위 구성(예: CXXFLAGS 등)더 알아보기.

대부분의 경우 많은 경로를 플래그로 지정하는 것은 드문 일입니다. 대신 다양한 종속성을 찾을 수 있는 위치를 스크립트에 --with알려주는 옵션을 찾고 싶습니다 . configure예를 들어, --with-tensorflow=/path/to/tensorflow이로 인해 적절한 -I및 플래그가 설정됩니다. -L달리기

./configure --help

어떤 옵션을 사용할 수 있는지 확인하세요.

답변2

export CFLAGS="-I/path1/include -I/path2/include -I/path3/include -O3 -g"
export CXXFLAGS=$CFLAGS
export LDFLAGS="-L/path1/lib -L/path2/lib -ltensorflow -lasan"
./configure && make

관련 정보