2012-06-18 3 views
2

우분투 시스템에 GNAT Programming Studio (GPS)/GNAT 프로젝트가 있습니다. 프로젝트의 Ada 콘텐츠는 정상적으로 컴파일됩니다. 그러나 (C++) 루틴 pragma가 포함 된 외부 ".a"라이브러리에 바인딩하고 링크해야합니다. Ada 소프트웨어에서 가져 왔습니다. 시도 할 때마다 "도서관 프로젝트가 주요 지정을 가질 수 없습니다."라는 메시지가 나타납니다.GPS의 우분투 .a 모듈 라이브러리에 연결 하시겠습니까?

내 프로젝트를 "라이브러리 프로젝트"로 생각하지 않습니다. 단지 라이브러리에 연결하려고합니다. 왜 이렇게 어려운가요? 세상을 재창조하지 않고도 할 수 있습니까?

경고 : 저는 리눅스 해킹이 아니므로 예제를 사용하여 명확하게 설명하십시오. 감사 :-)

+0

오류는 .gpr 프로젝트 파일에 있습니다. 그 내용을 게시 할 수 있습니까? – flyx

+0

아마도 게시 할 수는 없지만 단서를 보내 주셔서 감사합니다. Btw, 나는 GPS로 설정 한 일들이 GPS를 통해 변경 될 때 설정되지 않은 것을 알기 때문에 올바른 것일 수 있습니다. –

+0

@Eryndlia : GPS를 통해 속성을 업데이트 한 후 "프로젝트/모두 저장"을 수행하여 gpr 파일로 가져 오십시오. –

답변

1

"프로젝트 속성 편집"대화 상자에서 "라이브러리"탭을 잘못 해석 한 것일 수 있습니다. 프로젝트가 라이브러리로 빌드 될 때이를 채 웁니다. 그래서 그것을 비 웁니다.

다음 스위치 탭/Gnatmake 탭의 하단 텍스트 상자에 연결할 라이브러리에 "-llib"참조를 추가하십시오. 예 : 그것은 "마법"라이브러리가 있다면

이 마크 C의 조언에 추가
-lmycpplib -lyourcpplib -lcppisnotforme 
+0

비표준 라이브러리가있는 링커에게 알려야 할 수도 있습니다. '-lmycpplib'에'-L/where/to/find/it'를 붙입니다. –

+0

명확한 예를 들어 주셔서 감사합니다, 마크. LOL –

0

, 당신은 GCC의 외부 lib 디렉토리에 파일을 복사해야합니다 (즉, -lz이 ZLIB에 링크는 -lm은 수학에 등을 연결하는) 폴더 :

\lib\gcc\i686-pc-mingw32\4.5.3\ 내 Windows GNAT 디렉토리에 있지만 리눅스는 비슷한 구조를 가지고 있어야합니다.

+0

확실히 '내부'lib 폴더입니다. 보다 일반적인 장소는 아마도 {GNAT top dir} \ lib 일 것입니다. –

+0

이 주석을 잘 모릅니다. 그러나이 라이브러리는 로컬에 생성되므로 배포에 포함되지 않습니다. –

+0

귀하의 dev-machine에 설치하십시오. – Shark8

관련 문제