2010-10-18 12 views
13

Mam system linux w moim miejscu pracy z dość starymi pakietami i bez uprawnień administratora. Kompiluję pakiety, które potrzebuję od źródła z --prefix=[somewhere in homedir]. Moim problemem jest to, że po prostu nie mogę się dowiedzieć, jak przekonać configure, aby szukał plików nagłówkowych w określonym katalogu. Źródłem jest cpp. Próbowałem z zmiennymi środowiskowymi związanymi z g++ i przeglądając flagi i google, ale nie udało mi się. Czy ktoś może mi pomóc rozwiązać ten problem?Jak określić katalog włączania skryptu konfiguracyjnego

Odpowiedz

15

Normalnym sposobem wykonania tej czynności jest --with-<feature>=<header directory>.

+0

Dzięki. Zadziałało. – jakab922

+7

Jeśli zadziałało, to nie zostawiaj nas wiszącego tutaj ... –

+0

co się dzieje w ? – Chara

22

Zazwyczaj można przekazać dodatkowe flagi kompilatora wewnątrz CXXFLAGS. W przypadku gcc możesz podać więcej katalogów z -I/some/dir, np.

$ ./configure CXXFLAGS="-I/some/dir/" 

gdzie /some/dir/ zawiera nagłówki.

+4

CXXFLAGS jest dla kompilatora C++, więc CFLAGS dla kompilatora C. – thor

3

Lepiej używać CPPFLAGS do określania katalogów włączania.

./configure CPPFLAGS="-I/your/whatever/includedir" 
+0

Odpowiednio, ta odpowiedź nie wyjaśnia, dlaczego to może działać, jeśli określenie tego samego katalogu w środowisku przed uruchomieniem 'configure' zakończy się niepowodzeniem. – eh9

6
CPPFLAGS = C Preprocessor Flags, these flags will be used for C and C++ compilation. 

CFLAGS = C Flags, these flags will be used when compiling C. 

CXXFLAGS = C++ Flags, these flags will be used when compiling C++. 

Flaga -i określa dodatkowe obejmują katalogu, który będzie używany podczas kompilacji.

Generalnie jest to dobry pomysł, aby użyć CPPFLAGS podczas określania zawierają katalogi, w ten sposób wiesz, będzie on używany nawet jeśli projekt ma jakieś źródło, które jest kompilowany jako C

Oczywiście, nie może być również okoliczności gdzie chcesz, aby katalog include był używany przez C lub C++, ale nie oba. W takim przypadku najwyraźniej lepiej byłoby użyć zamiast tego CFLAGS lub CXXFLAGS.

Powiązane problemy