brew –with-debug-flag-set 패키지 스타일 명령이있어 brew가 디버그 정보를 포함하는 패키지를 빌드하도록 할 수 있습니까?
구체적으로, resp에서 분해가 작동하도록 clisp를 이런 식으로 빌드하고 싶습니다.
나는 라인을 따라 무언가를 상상한다.
brew install clisp --with-debug
또는 그런 것.
답변
Mike McQuaid (Homebrew의 선두 관리자)에 따르면 이것은 불가능합니다.
답변
추출 공식은 .rb
내부에 컴파일 옵션이 포함 된 Ruby ( ) 파일입니다. Homebrew brew install|reinstall
에서는 수식 이름 대신 URL을 지정할 수 있으므로 컴파일 플래그를 수식 의 온라인 사본 에 추가하고 gist.github.com 과 같은 서비스에서 호스팅 할 수 있습니다 .
다음은 재정의 된 컴파일 옵션이있는 루비 파일의 예입니다.
def install
args = std_cmake_args
# OVERRIDE: Force cmake to use debug flags
args << "-DCMAKE_BUILD_TYPE=Debug"
system "cmake", ".", *args
end
std_cmake_args
Homebrew의 interneal에 정의 된는 formula.rb
모든 Homebrew cmake
공식 내부의 변수 이며 cmake
추가 인수를 추가하기 전에 각 빌드에 새 기본값을 제공합니다 .
이 예제에서는을 사용합니다 cmake
. 각 프로젝트에는 자체 컴파일러 도구가 있으므로 컴파일 플래그를 추가하기위한 다른 기술이있을 수 있습니다. 예를 들어 cmake
디버그 플래그를 사용하도록 지시하려면args << "-DCMAKE_BUILD_TYPE=Debug"
이러한 변경 사항이 변경되었습니다 일단 .rb
파일 과 온라인으로 호스팅, 당신은 사용하여 새 옵션으로 패키지를 다시 설치할 수 있습니다 --build-from-source
명령 줄 옵션을.
brew reinstall --build-from-source https://<path to formula>.rb
-
경고 :을 사용
gist.github.com
하는 경우 “원시”버전은 원하는 URL입니다. 그렇지 않으면 페이지의 HTML (예 : 코드 미리보기)을 설치하려고 시도하지만 작동하지 않습니다. 🙂 -
경고 : 디버그 플래그와 함께 Homebrew 디렉토리에 지정된 패키지가 다시 설치되므로 이전 “릴리스”또는 “최적화 된”빌드를 더 이상 사용할 수 없습니다. 따라서
brew install
문제 해결이 완료되면 표준 기술을 사용하여 비 디버그 버전을 다시 설치해야합니다. 그렇지 않으면 수동으로 업데이트 될 때까지 컴퓨터에 디버그 버전의 라이브러리가 있습니다. 🙂