Korzystam z -I
opcji kompilacji, która odnosi się do plików bibliotecznych trzy katalogi w górę za pomocą opcji. Ścieżka do katalogu, z którego dzwonię do GCC, jest, /home/user/a/b/c/d/a1/a2/test
gdy biblioteki są w /home/user/a/b/c/d
.
Dziwne jest jednak to, że nie mogę uzyskać dostępu ani nawet zobaczyć plików, chyba że przejdę cd
do ich folderu. Jeśli uruchomię ls ../../../
z test
folderu, te pliki w ogóle się nie pojawią. Są to rzeczywiste pliki, a nie dowiązania symboliczne. Nawet się chmod o+x
na nich natknąłem .
Czy ktoś wie, co się dzieje?
terminal
directory-listing
ubuntu-17.04
Danny Chia
źródło
źródło
namei -l /home/user/a/b/c/d/a1/a2/test
inamei -l /home/user/a/b/c/d/somelibraryname.h
.Odpowiedzi:
W końcu znalazłem przyczynę problemu. Okazuje się, że jeden z katalogów był w rzeczywistości dowiązaniem symbolicznym do innego katalogu. Tak samo
ls
działało w katalogu docelowym, a nie w katalogu zawierającym dowiązanie symboliczne. Użycie ścieżki bezwzględnej rozwiązało problem.źródło