이것블랙베리 플레이북공식적으로 도달했습니다단종(2014년 4월), 하지만 이미 설치했습니다.BGShell,BGSSH-SCP-SFTP, 그리고용어 48위에. 그래서 나한테 좀 있어케시- GNU 3.1.5 awk
, 4.1.5 sed
및 grep
기타 쉘 과 같습니다.python
일부다른핵심 도구요소 (그러나 없음 tr
) 등 그래요루트가 아님. 기본적으로 Downloads
디렉토리 에서 이 작업을 수행할 수 있습니다 .$HOME쉘 애플리케이션에 의해 생성된 디렉토리( /accounts/1000/appdata/com.BGShell..blabla/data
예를 들어)는 모든 것을 실행할 수는 없지만 일반적으로 위에서 언급한 제한 내에서 스크립트를 실행할 수 있습니다. 제가 관심을 갖는 이유는 바로 이것이기 때문입니다.QNX존재하다피질-A9.:
QNX localhost 6.6.0 2014/03/19-01:28:41EDT OMAP4430_ES2.2_HS_Winchester_Rev:07 armle
그래서 악용하려고 했어요오래된 프로젝트1. 이 기능이 작동하려면 변경해야 할 사항이 많이 있지만 대부분의 대상( gcc
및 2coreutils-8.13
포함 ) 에 대해 설정 및 컴파일할 수 있습니다 . 도착하다요약하다, 일부 오류를 피하기 위해 다양한 구성 플래그 변형과 일부 이전 버전의 개발 도구를 사용하여 컴파일했습니다. 비슷한 문제를 해결했습니다.
CFLAGS="-march=armv7-a -marm -fno-strict-aliasing -mtune=cortex-a9 -O2 -pipe -fomit-frame-pointer -mlittle-endian"
AUTOMAKE=automake-1.11: AUTOCONF=: AUTOHEADER=: AUTORECONF=: ACLOCAL=aclocal-1.11: MAKEINFO=makeinfo-4.13a
arm-unknown-nto-qnx8.0.0eabi-gcc
크로스 컴파일러 와 연결10.3 소프트웨어 개발 키트안쪽에 위치해 있어요기세IDE. 결과 바이너리는 다음과 같습니다.
ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), BuildID[md5/uuid]=41442b23fecda2d1d7cc5d2c68432a33, not stripped
그러나 그들 모두는 다음과 같은 메시지와 함께 태블릿에 오류를 표시합니다.
ldd:FATAL: Unresolved symbol "getopt_long" called from Executable
다른 플래그를 사용하여 여러 번 다시 컴파일하고 항상 해당 메시지를 받기 때문에 이전 SDK를 대상으로 했기 때문에 빌드 스크립트에서 컴파일러 이외의 다른 것을 잘못 연결했을 수도 있다고 생각합니다... ...(이것은 내 전문 지식을 넘어서지만, 어쩌면 가비지 수집에 관한 것일 수도 있습니다. 즉 collect
?). 아니면 대상 플랫폼에서 이상한 구성입니까?
설정(및 경험 부족)으로 인해 여기에는 백만 가지 문제가 발생할 수 있지만 몇 가지 단서를 찾고 있으므로 이와 같은 오류에서 이해해야 할 구체적인 내용이 있으며 일반적으로 어떻게 역추적합니까? 문제?
1. 전체적으로 스크립트 묶음입니다.가져와,수리하다,엮다,설치하다그런 다음 디렉토리로 이동하십시오.묶음디렉토리를 zip 파일로 압축한 다음 멋진 파일을 생성합니다.루비 웹릭서버, 태블릿을 사용하여 스크립트를 다운로드하고 보관합니다(250MB를 보관하는 데 사용하지 않고 웹 파일 호스트와 브라우저를 사용합니다).
2.삭제했습니다루비,문서, 그리고루비최상위 빌드 구성의 대상입니다.
답변1
이는 두 가지 다른 SDK 1 문제를 혼동하는 것입니다.선택 항목을 길게 가져옵니다. 존재하다존재하다QNX6.6. 하지만 libc
위 버전은스크립트 하지 그이전 버전이 있기 때문에/프로세스. 설치하면 오류가 발생하지 않습니다플레이북 OS 네이티브 SDK v2.1.0맹목적으로 유행을 따르기보다는협회프로젝트에서 이것이 설치됩니다네이티브 SDK v10.32.1로통합 개발 환경~을 위한BB10. 프로젝트 정보는 명확하지만 링크가 올바른 SDK로 연결되지 않습니다. 그래서 결국에는 BB10에서 실행되는 바이너리일 가능성이 높지만 인프라는 정확히 동일하지 않습니다. 흥미롭게도 이와 같은 기능은 grep
BB SDK로 컴파일할 때 작동하지만 긴 옵션에 대한 답변을 거부합니다...--version
하지만 올바른 SDK를 사용하면 문제가 없습니다. 대부분의 대상이 다시 컴파일 되었습니다 2 . 이 모든 일이 일어났습니다아치 리눅스 x84_64어디도쿠저장소가 활성화되어 있습니다(그리고 많은lib32-당겨진 패키지). 이것은 내가 3build.sh
에 사용하는 구성 블록입니다 .gcc
CONFIGURE_CMD="$EXECDIR/gcc/configure
--host=$PBHOSTARCH
--build=$PBBUILDARCH
--target=$PBTARGETARCH
--srcdir=$EXECDIR/gcc
--with-as=ntoarm-as
--with-ld=ntoarm-ld
--with-sysroot=$BBTOOLS/target/qnx6/
--disable-werror
--prefix=$DESTDIR
--exec-prefix=$DESTDIR
--enable-cheaders=c
--enable-languages=c
--enable-threads=posix
--disable-nls
--disable-libssp
--disable-tls
--disable-libstdcxx-pch
--disable-newlib-supplied-syscalls
--enable-libmudflap
--enable-__cxa_atexit
--with-gxx-include-dir=$BBTOOLS/target/qnx6/usr/include
--enable-shared
--disable-subdir-texinfo
--enable-cross-compile
--enable-shared
CC=$PBTARGETARCH-gcc
CFLAGS='-march=armv7-a -marm -fno-strict-aliasing -mtune=cortex-a9 -O2 -pipe -fomit-frame-pointer -mlittle-endian'
LDFLAGS='-Wl,-s '
MAKEOPTS="-j5"
AUTOMAKE=automake-1.11: AUTOCONF=: AUTOHEADER=: AUTORECONF=: ACLOCAL=aclocal-1.11: MAKEINFO=makeinfo-4.13a
coreutils
둘 다 작동하며 별칭 과 옵션이 gcc
있습니다 .ls
grep
--color
마지막 기능 tr
쉘스크립트에 대한 보기 드문 통찰력을 제공합니다.QNX!
1. 감사합니다라이언 맨스필드@Foundry27 참고하세요@엠마누엘정보를 얻고 있어요!
2. 대상 제외: file
, man
, ruby
, findutils
. 결과 아카이브 크기는 80Mib입니다.ruby
웹릭서버는 예상대로 배포하는 데 사용됩니다.
3. ...둘 모두에 대해 gcc
그리고 coreutils
실제로(후자의 경우 기본값 추가). 모든 옵션이 필수인지 권장되는지는 확실하지 않습니다. 각 대상은 build.sh
적절한 디렉터리( bootstrap/target
예: bootstrap/gcc/build.sh
. 빌드 환경( )은 ie 옵션을 bbndk-env.sh
사용하여 전역 최상위 build.sh 스크립트에 의해 한 번 획득되어야 합니다 . 소스 코드는 빌드된 디렉터리 에 추출됩니다 . 빌드가 성공하고 옵션이 제공되지 않으면(프로젝트 루트 참조 ) 아카이브로 압축될 디렉터리 구조 에 추가됩니다 (아카이브는 실행 중인 장치의 $HOME 디렉터리에 배포됩니다).-b
build.sh -b /path/to/bbndk-2.10
work/target
lib.sh
pbhome
BGShell). 참고사항도 참고해주세요다윈나는lib.sh
x86_64나는. 그렇지 않으면 원래 프로젝트 구성에 대한 변경 사항이 없습니다 arm-unknown-nto-qnx6.5.0eabi
(Q에서 버전 8.0.0 및 BB10.3 SDK를 사용하는 것과는 다름). 따라서 문제가 있는 몇 가지 대상을 제거하고 나면 컴파일이 매우 쉬워졌습니다.