저는 FreeBSD 12에서 정적으로 cmake 프로젝트를 컴파일했고 그것을 시도했을 때 동일한 시스템에서 실행 파일을 시도했고 제대로 작동했습니다 ldd executable
. not a dynamic executable
그런 다음 FreeBSD 12를 사용하여 vps로 이식했는데 예상대로 작동했습니다. 하지만 FreeBSD 8로 이식했을 때. executable --help
도움말 인쇄 와 같은 일부 명령은 작동합니다 . 그러나 네트워크와 관련된 일부 기능을 시도할 때(네트워크가 구성되어 있고, 컬 및 PHP와 같은 다양한 프로그램을 시도했습니다), 프로세스는 분할 오류나 어떤 것도 없이 자동으로 종료되고, 실행 파일을 실행한 후 일부 다른 파일 이름이 executable.core
동일한 파일에 추가됩니다. 예배 규칙서
FreeBSD 버전을 컴파일하는 것은 이번이 처음이므로 무엇을 놓치고 있는지 모르겠습니다.
답변1
FreeBSD 12에는 "ino64"라는 심각한 ABI 변경 사항이 있습니다. IIRC, libc는 동적으로 링크할 때 이를 처리할 수 있으므로 먼저 이를 시도해 보겠습니다. 이것이 작동하지 않으면 유일한 옵션은 FreeBSD 8에서 컴파일하는 것입니다.
일반적으로 X 메이저 버전에서 컴파일된 바이너리가 X-1 버전에서 실행될 것이라고 기대해서는 안 됩니다. 그러나 misc/compatXX
패키지를 설치하면 다른 방법으로 수행됩니다.