TensorRT 인터페이스 봉인 성공 에너지 라이브러리에 나타나는 error
1892 단어 TensorRT
언어: C++
ide:Qt
오류가 발생했습니다.
참조:https://www.cnblogs.com/octave/p/4824584.html
https://www.cnblogs.com/techiel/p/8035014.html
unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `__stack_chk_guard@@GLIBC_2.17'
relocation R_AARCH64_ADR_PREL_PG_HI21 against external symbol `__stack_chk_guard@@GLIBC_2.17' can
not be used when making a shared object; recompile with -fPIC
문제는 TensorRT 인터페이스를 패키지했기 때문입니다.so(동적 라이브러리) 시 동적 라이브러리는 자동으로 "-fPIC"를 가입하고 제3자를 링크해야 합니다.a (정적 라이브러리) 때, 정적 라이브러리 컴파일이 "-fPIC"에 가입하지 않으면 제3자 라이브러리를 호출할 수 없습니다.
문제는 어떻게 제3자 정적 라이브러리를 컴파일할 때 "-fPIC"를 가입합니까?
인터넷에는 많은 방법이 있다.pro 파일에 추가:
QMAKE_CFLAGS +=-fPIC
또는
QMAKE_CFLAGS += -fPIC
QMAKE_CXXFLAGS += -fPIC
컴파일 결과의 makefile 파일을 보면 시스템이 기본적으로 추가되었기 때문에 "-fPIC"를 추가하는 것은 아무런 작용도 하지 않습니다. 정확한 방법은 "-Xcompiler-fPIC"를 추가하는 것입니다. 추가된 효과는 다음과 같습니다.
CONFIG(debug, debug|release) {
# Debug mode
cuda_d.input = CUDA_SOURCES
cuda_d.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_cuda.o
cuda_d.commands = $$CUDA_DIR/bin/nvcc -D_DEBUG $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -Xcompiler -fPIC -arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
cuda_d.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += cuda_d
}
else {
# Release mode
cuda.input = CUDA_SOURCES
cuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_cuda.o
cuda.commands = $$CUDA_DIR/bin/nvcc $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -Xcompiler -fPIC -arch=$$CUDA_ARCH -O3 -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
cuda.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += cuda
}
이의가 있으면 메시지를 남겨 주십시오. 감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
TensorRT 인터페이스 봉인 성공 에너지 라이브러리에 나타나는 error플랫폼: TX2 JetPack3.3 언어: C++ ide:Qt 오류가 발생했습니다. 참조:https://www.cnblogs.com/octave/p/4824584.html https://www.cnblogs.com/...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.