Xenomai를 사용하여 동적 링크 라이브러리 만들기
1402 단어 삽입식 개발
프로젝트에서 Xenomai가 실시간 주기 작업을 만들고 동적 링크 라이브러리로 봉인해야 합니다. 이 기록에 문제가 있습니다.
QT컴파일xenomai 사용자층 프로그램의 절차에 따라 동적 라이브러리 프로젝트를 구축한 후.
컴파일하면 다음과 같은 오류가 발생합니다.
:-1: error: /usr/xenomai/lib/xenomai/bootstrap.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
동적 라이브러리를 컴파일하려면 다음과 같이 -fpIC 플래그를 추가해야 합니다.
XCFLAGS = $(shell $$XENO_CONFIG -fPIC --skin=alchemy --cflags)
XLDFLAGS = $(shell $$XENO_CONFIG -fPIC --skin=alchemy --ldflags)
컴파일링을 통해 동적 링크 라이브러리를 실행하면 다음 오류가 발생합니다.
Segmentation fault(core dumped)
스택 오버플로우가 발생했습니다.
다행히 Xenomai 포럼에서 같은 문제에 부딪힌 사람이 있었어요.
Cannot create a share library linked against Xenomai libs
아래 설명에 따라 공식 문서를 참조하십시오.
XENO-CONFIG(1) Manual Page
--auto-init-solib
This switch enables the auto-initialization feature described above for a shared library target instead of a pure executable. The main difference resides in a position-independent (PIC) glue code being used for bootstrapping the initialization.
컴파일 매개변수에 - auto-init-solib 플래그 추가
XCFLAGS = $(shell $$XENO_CONFIG --skin=alchemy --auto-init-solib --cflags)
XLDFLAGS = $(shell $$XENO_CONFIG --skin=alchemy --auto-init-solib --ldflags)
다시 실행, 성공!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Xenomai를 사용하여 동적 링크 라이브러리 만들기Xenomai를 사용하여 동적 링크 라이브러리 만들기 프로젝트에서 Xenomai가 실시간 주기 작업을 만들고 동적 링크 라이브러리로 봉인해야 합니다. 이 기록에 문제가 있습니다. QT컴파일xenomai 사용자층 프로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.