2009-07-06 7 views
7

jaka jest najlepsza praktyka odwoływania się do komponentów C++ stron trzecich (np. Obejmuje, biblioteki) przy użyciu ścieżek względnych w Eclipse-CDT?Odwoływanie się do bibliotek innych firm przy użyciu ścieżek * względnych * w Eclipse-CDT

  • Próbuję odwołać się do Boost i Google protobuf.
  • Włożyłam je każdy w folderze w moim obszarze roboczym, na przykład/home/user/workspace/boost_1_39_9
  • Dodałem odwołanie do tego folderu w ustawieniach kompilacji we właściwościach projektu, ale ZUŻYCIE nie pozwala mi określić tej ścieżki jako względnej względem folderu obszaru roboczego, muszę to wybrać przy użyciu systemu plików i określić ścieżkę bezwzględną

dzięki,

  • Alex
+0

Mam dokładnie ten sam problem z łącznikiem MySQL dla C++ - skompilowałem go i umieściłem w dodatkowym projekcie, dodałem to do biblioteki Ścieżka wyszukiwania, ale Eclipse nalega, że ​​nie może go znaleźć!Skopiowałem to do/usr/lib i działało dobrze. – wsd

Odpowiedz

1

nie jestem pewien o ścieżkach dla CDT zbudować ustawienia (nie na komputerze), ale nie możesz użyj obszaru roboczego var Czy to możliwe? Coś jak: $ {workspace_loc}/boost_1_39_9

Edytuj: OK, zrobiłem trochę wyszukiwania i znalazłem informacje na temat tych zmiennych, here. Myślę, że chcesz: $ {project_loc:/boost_1_39_0}?

+1

Próbowałem, ale to nie działa. 1. Eclipse nie pozwoli ci stworzyć czegoś takiego, zmusza cię do wybrania $ {workspace_loc}/[YourProjectName]/boost_1_39_0 2. Jeśli wprowadzę to, co zasugerowałeś ręcznie, * pojawi się *, ale Eclipse nie może znajdź moje załączniki. –

+0

Nie planowałem zwiększać położenia projektu, ponieważ wtedy Eclipse będzie chciał go zbudować. –

6

zmienne Eclipse, takie jak $ {workspace_loc} oraz $ {project_loc} działa tylko na rzeczy, które są rzeczywiście w runtime Eclipse obszaru roboczego. Kiedy mówisz, że umieściłeś je w obszarze roboczym w systemie plików, czy faktycznie zaimportowałeś pliki do Eclipse (używając nowego projektu lub tworząc połączony folder w istniejącym projekcie)?

Jeśli istnieją pliki w systemie plików, ale nie w Eclipse Eclipse sam potem będzie tylko możliwość dostępu do ich ścieżek bezwzględnych.

BTW, CDT ma własne zmienne: $ {WorkspaceDirPath} $ {ProjDirPath} $ {ProjName}, które rozszerzają się do konkretnej lokalizacji systemu plików.

1

I rozwiązać ten problem za pomocą Preferences-> General-> Workspace-> Opcje Związany Resources.

Zasadniczo można zdefiniować zmienną wskazującą na katalogu roboczego.

Następnie dodaj do projektu folder zewnętrzny za pomocą Dodaj folder-> Zaawansowane-> Link do folderu w systemie plików i użyj przycisku Zmienne ..., aby użyć poprzednio utworzonej zmiennej, aby wskazać stronę trzecią folder (za pomocą przycisku Extend).

Następnie wystarczy dodać folder do listy obejmują i ścieżki biblioteki w ustawieniach projektu.

łatwe, jak ciasto ...: S

0

Tylko myśl .. próbowałeś instalacji impuls taki sposób, że obejmuje iść w/usr/include i/usr/lib/lub/lib. Następnie dodaj te ścieżki do preferencji kompilacji. Miałem podobny problem, ale potem rozwiązaliśmy go, używając niestandardowych plików Makefile. Pracował dla nas, bo już miał zwyczaj budowania ram i po prostu trzeba zrobić kilka zmian do istniejącego makefile i skopiować go do tego projektu.