CFLAGS 및 LDFLAGS를 "구성"에 추가하는 올바른 구문은 무엇입니까?


40

OpenVPN 소스 tarball을 사용하여 OpenBSD 5.5에 OpenVPN을 설치하고 싶습니다.

여기 지침에 따르면 lzo를 설치하고

gcc는 그렇지 않으면 CFLAGS = "-I / usr / local / include"LDFLAGS = "-L / usr / local / lib"지시문을 "configure"에 추가합니다.

OpenBSD에서 위의 작업을 수행하는 방법에 대한 가이드를 광범위하게 봤지만 아무것도 없습니다.

이것이 내가 할 일입니다.

  1. 소스 타르볼을 새로 만든 디렉토리에 풉니 다.
  2. ./configure CFLAGS = "-I / usr / local / include"LDFLAGS = "-L / usr / local / lib"명령을 실행하십시오.
  3. make 명령을 실행하십시오
  4. make install 명령을 실행하십시오.

다음 중 올바른 구문은 무엇입니까?

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

또는

./configure --CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

또는

./configure --CFLAGS="-I/usr/local/include" --LDFLAGS="-L/usr/local/lib"

답변:


41

올바른 방법은 다음과 같습니다.

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

그러나 이것은 모든 configure스크립트에서 작동하지 않을 수 있습니다 . CPATHand와 같은 환경 변수를 설정하는 것이 좋습니다 LIBRARY_PATH( gccman 페이지 참조).

예를 들면 :

export CPATH=/usr/local/include
export LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib

귀하의 .profile예를 들어. 가 LD_LIBRARY_PATH실행 경로를 사용하지 않는 경우 공유 라이브러리의 경우에 필요 할 수있다 (이는 OS에 따라, 빌드 도구와 사용되는 옵션,하지만 상처 안).


답변 주셔서 감사합니다. gBSD는 OpenBSD 5.5의 기본 시스템에 기본적으로 설치되어 있습니까? 그렇지 않으면 버그 나 보안 취약점이있을 수 있으므로 타사 패키지를 설치하지 않을 것입니다.
user66229

1
@ user66229 기본 설치를 수행 한 경우 예 gcc-4.2.1(vaxen과 같은 오래된 시스템을 사용하지 않는 경우)는에 comp55.tgz있습니다. gcc-4.84.9에 대한 패키지가 있습니다 llvm/clang 3.0. 전자는 주로 라이센싱 이유로 (GPLv2 vs GPLv3) 포함되지 않으며 후자는 OpenBSD가 현재 지원하는 모든 플랫폼을 지원하지 않기 때문에 사용되지 않습니다.
damien

1
@ user66229 내 답변을 편집했습니다. 이것은 단지 예일 뿐이며 다른 방법이있을 수 있으며 이미 일부 설정이있을 수 있습니다. 먼저 확인하십시오 echo $CPATH.
vinc17

1
CFLAGS로 컴파일 된 여러 종속성 후 CFLAGS가 지정 될 때 마지막 종속성이 충돌하고 실제로 grep CFLAGS configure해당 구성 스크립트에서 공백을 반환하는 경우가 발생했습니다. .
sdaau

1
나는 매우 조심 것 LD_LIBRARY_PATH: xahlee.info/UnixResource_dir/_/ldpath.html .
skalee

8

첫 번째 구문이 맞습니다.

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

그러나 FAQ 섹션 15에 설명 된 대로 바이너리를 사용 하거나 어떤 이유로 든 소스에서 빌드해야하는 경우 인프라 를 사용 하는 것이 좋습니다 .packages(7)ports(7)

FAQ에 자세히 설명 된대로 포트 트리를 설정하십시오. 그런 다음 openvpn포트를 찾으십시오 .

cd /usr/ports
make search key=openvpn

이것은 용어를 포함하는 많은 포트를 출력합니다 openvpn. 그들 중 하나는 openvpn-2.3.2경로 net/openvpn입니다.

cd net/openvpn
sudo make install clean

이렇게하면 lzo2시스템을 방해하지 않고 종속성 (여기서는 )을 올바르게 설치할 수 openvpn있으며 OpenBSD 에서 사용하는 방법에 대한 추가 지침을 얻을 수 있다는 이점 이 있습니다 .


답변 주셔서 감사합니다. OpenBSD 5.5에는 이미 OpenVPN (바이너리) 패키지가 있지만 버전 2.3.2 이전입니다. OpenVPN의 GitHub에서만 제공되는 최신 버전 2.3.4를 컴파일하고 설치하고 싶습니다.
user66229

lzo를 언급했듯이 lzo-1.08p3.tgz, lzo2-2.06p0.tgz 및 lzop-1.03.tgz의 세 가지 바이너리 패키지가 있음을 알았습니다. 이 3 가지 중 어느 것이 OpenVPN에 대한 종속성입니까?
user66229

1
@ user66229 : 그럴 것입니다 lzo2-2.06p0.tgz. 다음에서 포트를 에서 로 업그레이드 하는 패치 가 있지만 두 버전 간에 OpenBSD와 관련된 변경은 거의 없습니다 (전체 스레드 읽기). 나는 정말로 바이너리 패키지와 함께 갈 것을 권장합니다. openvpn2.3.22.3.4
damien

@damien 답변과 패치 링크에 감사드립니다. 패치의 내용을 읽었 으며 OpenBSD 용 OpenBSD에 관리자없다는 사실이 걱정 됩니다. 바이너리 패키지 openvpn-2.3.2.tgz가 OpenBSD의 공식 다운로드 미러에 어떻게 적용되었는지에 대한 답을 추측하도록 도와주세요 .
user66229

1
@ user66229 여기 에서 포트의 Makefile에 대한 전체 개정 목록을 볼 수 있습니다. 스레드에서 Stuart Henderson (주요 패키지 관리자 중 하나)이 말했듯이 이러한 변경 사항 중 실제로 OpenBSD와 관련이있는 것은 아닙니다.
damien
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.