> 컴퓨터 튜토리얼 > 컴퓨터 지식 > 우분투 서버에서 다른 시스템의 실행 프로그램을 크로스 컴파일하는 방법은 무엇입니까?

우분투 서버에서 다른 시스템의 실행 프로그램을 크로스 컴파일하는 방법은 무엇입니까?

WBOY
풀어 주다: 2024-03-06 13:34:02
앞으로
397명이 탐색했습니다.

많은 C 프로그래머들이 다음과 같은 질문을 갖고 있다고 생각합니다. 서버에 서로 다른 gcc 버전이 있으면 어떻게 되나요?

대답은 '예'입니다. 일반적으로 gcc를 사용하여 소스 파일을 컴파일할 때 이 gcc는 시스템 환경 변수 PATH에서 발견되는 첫 번째 gcc입니다.

다른 시스템용으로 프로그램을 크로스 컴파일하고 싶다면 어떻게 해야 합니까? 이를 위해서는 여러 세트의 컴파일 도구 체인이 필요하며 해당 도구 체인은 대상 시스템의 프로그램을 컴파일하는 데 사용됩니다.

기본 경로

  • 컴파일러 경로: 일반적으로 /usr/bin 디렉터리에 위치합니다.
  • 헤더 파일 경로: 일반적으로 시스템 수준 헤더 파일이 배치됩니다 /usr/include 中,标准库的头文件一般在 /usr/local/include.
  • 라이브러리 경로: 시스템 동적 라이브러리는 종종 /usr/lib 和 /lib,静态库通常也会放在这里或者 /usr/local/lib에 있습니다.

경로를 수동으로 설정

컴파일러 경로

컴파일러 경로에 대한 환경 변수를 변경할 필요는 없습니다. /usr/bin 应该已经在你的 PATH 环境变量中了。如果你需要使用不同的编译器,你可以直接使用其完整路径或者修改 PATH가 이미

환경 변수에 있어야 하기 때문입니다. 다른 컴파일러를 사용해야 하는 경우 해당 컴파일러의 전체 경로를 직접 사용하거나

환경 변수를 수정하여 컴파일러를 가리키도록 할 수 있습니다. 예: PATH 으아악

이렇게 하면 시스템이 여기에서 먼저 실행 파일을 찾을 수 있도록 기존

앞에 지정한 경로가 추가됩니다. 크로스 컴파일러 설정

Marvell에서 제공하는 툴 체인을 사용하여 Ubuntu에서 ARM 아키텍처 프로그램을 컴파일해야 합니다. 이 툴체인에는 ARM 아키텍처 프로그램 크로스 컴파일을 위한 gcc 및 기타 도구가 포함되어 있으며 모두 동일한 접두사가 있습니다. 우분투 서버에서 다른 시스템의 실행 프로그램을 크로스 컴파일하는 방법은 무엇입니까? 으아악

우분투 서버에서 다른 시스템의 실행 프로그램을 크로스 컴파일하는 방법은 무엇입니까?

실행 가능한 프로그램 시스템 아키텍처 보기

그런 다음 다음 두 프로그램을 각각 실행합니다. 우분투 서버에서 다른 시스템의 실행 프로그램을 크로스 컴파일하는 방법은 무엇입니까?

현재 시스템 아키텍처: uname -m우분투 서버에서 다른 시스템의 실행 프로그램을 크로스 컴파일하는 방법은 무엇입니까?

gcc是会按照系统默认的PATH路径去查找编译时需要的相应的工具组件

일반적으로

. 如果都把这些工具链的路径加到系统的环境变量PATH中则会产生冲突

따라서 다양한 아키텍처의 프로그램을 컴파일하려면 여러 도구 체인 세트가 필요합니다.

이전 경로에서 동일한 이름을 가진 도구가 먼저 사용됩니다. 예를 들어 PATH는 다음과 같이 설정됩니다. 으아악 那么前面的就会覆盖后面的,每次执行都会优先使用最早匹配到的gcc工具/path/arm_toolchain/bin 및 /usr/bin, /path/x86_toolchain/bin에는 모두 gcc라는 도구가 있습니다.

.

단점: 다양한 아키텍처의 컴파일 도구 체인은 동적으로 지정할 수 없으며 PATH 환경 변수를 자주 수정해야 합니다.

给每个工具链指定相应的环境变量개선 방법:

, 서로 다른 컴파일러를 동적으로 구별할 수 있습니다.

이 방법은 일시적으로 도구 체인을 전환하고 다른 아키텍처의 프로그램을 컴파일하는 데 적합합니다. 대규모 C 프로그램인 경우 일반적으로 컴파일러 경로가 구성 파일에 지정된 다음 make, meson 또는 기타 빌드 도구를 사용하여 빌드됩니다. 🎜

위 내용은 우분투 서버에서 다른 시스템의 실행 프로그램을 크로스 컴파일하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:mryunwei.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿