libmya.so 라이브러리와 libmyb.so 라이브러리가 있습니다. libmyb.so의 함수는 libmya.so의 함수에 의존합니다. 또한 libmyb.so에 의존하는 실행 가능한 myexe가 있습니다. 이 라이브러리를 만들 때 어떤 규칙에 -l 옵션을 써야합니까?링크 할 때 라이브러리 의존성은 어떻게 작동합니까?
libmya.so: $(OBJ_FILES)
$(CPP) $(LDFLAGS) -o [email protected] $^
libmyb.so: $(OBJ_FILES)
$(CPP) $(LDFLAGS) $(LIBS) -o [email protected] $^ -lmya
myexe: $(OBJ_FILES)
$(CPP) $(LDFLAGS) $(LIBS) -o [email protected] $^ -lmyb
또는 2)
libmya.so: $(OBJ_FILES)
$(CPP) $(LDFLAGS) -o [email protected] $^
libmyb.so: $(OBJ_FILES)
$(CPP) $(LDFLAGS) $(LIBS) -o [email protected] $^
myexe: $(OBJ_FILES)
$(CPP) $(LDFLAGS) $(LIBS) -o [email protected] $^ -lmya -lmyb
또는 다른 콤보 :
는 1)이어야한다
왜 CPP를 사용하고 있습니까? 이것은 일반적으로 C 전처리 기입니다. CXX는 일반적으로 C++ 컴파일러입니다. –
@Fred Nurk : 내가 여기 왔을 때와 같았습니다! 팁 고마워. – MattSmith
사용중인 운영 체제는 무엇입니까? 나는 당신이 파일을 다루고 있기 때문에 유닉스를 가정하지만 명확하게 해치울 필요는 없다. – mgiuca