나는 C, qt 및 cmake에 대한 경험이 없습니다.
저는 이 프로젝트를 구축하는 데 지난 10시간을 보냈습니다. https://github.com/moonlight-stream/moonlight-qt
내 주요 목표는 직접 빌드하고 우분투에서 실행하는 것입니다.
추가 정보에는 빌드하기 위해 설치해야 하는 모든 라이브러리가 설명되어 있습니다.
openssl-devel qt5-devel SDL2-devel ffmpeg-devel qt5-qtquickcontrols2-devel libva-devel libvdpau-devel opus-devel pulseaudio-libs-devel alsa-lib-devel SDL2_ttf-devel
Ubuntu에서 빌드하려고 했지만 이러한 라이브러리는 간단한 "apt" 명령으로는 설치할 수 없다는 것을 발견했습니다. 우분투에서 라이브러리를 사용해 보았지만 (예를 들어) "libssl-dev"를 설치한 후 cmake가 최신 Fedora를 설치한 다음 yum을 사용하여 라이브러리를 설치하고 프로젝트를 성공적으로 빌드했습니다.
그 후 바이너리를 Ubuntu 시스템에 복사했지만 실행할 수 없었습니다. 내 우분투에는 공유 라이브러리가 많이 없습니다. 또한 내 Ubuntu에는 Fedora에서 빌드할 때 사용하는 것보다 이전 버전의 qt가 있습니다.
github "릴리스" 탭에서 다운로드한 컴파일된 Ubuntu 버전은 정상적으로 실행됩니다.
문제를 해결하는 방법을 정확히 모르기 때문에 3가지 질문이 있습니다.
- Fedora에서 빌드하고 Ubuntu에서 실행하는 것이 합리적입니까?
- 어떻게든 "make" 명령을 사용하여 공유 및 Qt 관련 라이브러리를 모두 프로젝트에 포함시킬 수 있나요?
- 그렇지 않다면 Ubuntu에 yum을 설치한 다음 권장 라이브러리를 쉽게 설치할 수 있을까요?
답변1
- Fedora에서 빌드하고 Ubuntu에서 실행하는 것이 합리적입니까?
아니요, 시도하지 마세요. 적어도 그렇지는 않습니다. 당신은 할 수때때로"자매" 배포판 간(예: Debian, Ubuntu 및 Mint 간 또는 CentOS, Fedora 및 RHEL 간) 마이그레이션을 피하세요. 그러나 주요 분기를 넘을 때 거의 항상 라이브러리 버전 불일치와 같은 문제에 직면하게 됩니다.
- 어떻게든 "make" 명령을 사용하여 공유 및 Qt 관련 라이브러리를 모두 프로젝트에 포함시킬 수 있나요?
실제로 모든 공유 라이브러리를 수동으로 복사하여 사용할 수 있습니다. 유일한 문제는 그들 사이의 서로 다른 코어일 수 있습니다. 그러나 나는 이것을 권장하지 않습니다. 당신은 이것을 요구하지 않습니다 make
. .so
프로젝트의 실행 파일 또는 빌드 파일을 찾아 필요한 라이브러리를 확인하세요.ldd
. 디렉토리에 넣고 설정해야합니다LD_LIBRARY_PATH달리기 전.다시 말하지만 이는 바람직하지 않습니다.
- 그렇지 않다면 Ubuntu에 yum을 설치한 다음 권장 라이브러리를 쉽게 설치할 수 있을까요?
이것은 훨씬 더 나쁜 생각입니다. 이 두 시스템이 어떻게 싸우고 운영 체제를 망칠 수 있는지 생각하고 싶지 않습니다.
최선의 선택: Ubuntu 기반 구축
빌드가 안되면 github에 이슈를 올려주세요.
이러한 패키지는 Ubuntu에 있을 가능성이 가장 높지만 Ubuntu와 Fedora에서는 패키지 이름이 다르기 때문에 패키지 이름을 조사해 볼 수도 있습니다. 예를 들어libssl 개발.
성공할 가능성이 있는 이름의 가장 작은 부분부터 검색해 보세요. 예를 들면 다음과 같습니다.
apt-cache search libssl
cl-plus-ssl - Common Lisp interface to OpenSSL
dcmtk - OFFIS DICOM toolkit command line utilities
libdcmtk-dev - OFFIS DICOM toolkit development libraries and headers
libdcmtk14 - OFFIS DICOM toolkit runtime libraries
dlang-openssl - D version of the C headers for openssl
libssl-ocaml - OCaml bindings for OpenSSL (runtime)
libssl-ocaml-dev - OCaml bindings for OpenSSL
* libssl-dev - Secure Sockets Layer toolkit - development files
libssl-doc - Secure Sockets Layer toolkit - development documentation
libssl1.1 - Secure Sockets Layer toolkit - shared libraries
perl-openssl-defaults - version compatibility baseline for Perl OpenSSL packages
r-cran-openssl - GNU R toolkit for encryption, signatures and certificates based on OpenSSL
libssl-utils-clojure - library for SSL certificate management on the JVM