샘플 프로그램을 제대로 연결하는 데 문제가 있습니다 (이 경우 ICU 라이브러리와의 비교). 내가 'make'할 때 모든 것이 잘됩니다. 그러나 나는 그것을 실행할 때 .so의 것을 찾을 수 없다고 말합니다. 나는 그들이/usr/local/lib에 모두 설치되었는지 다시 확인했다. 내가 발견 한 것은/usr/lib 디렉토리에서 찾고있는 것이었다. 거기에서 실제 위치로 심볼릭 링크하면 작동합니다.LIBPATHS가 Makefile에서 사용되지 않고 공유 객체를 찾을 수 없습니다.
내 LIBPATHS가 무시되거나 사용되지 않는 이유는 무엇입니까?
다음은 동적 라이브러리에 대한 경로는 기본적으로 실행 파일에 저장되지 메이크
CC = g++
INCPATHS = -I/usr/local/include
CFLAGS = -c -Wall $(INCPATHS)
LIBPATHS = -L/usr/local/lib/
LIBS = $(LIBPATHS) -licuio -licui18n -licuuc -licuio -licudata
EXECUTABLE = prog
print_linking = echo -e "\033[32m" "Linking: $<" "\033[39m"
print_compiling = echo -e "\033[33m" "Compiling: $<" "\033[39m"
print_cleaning = echo -e "\033[31m" "Cleaning: `pwd`" "\033[39m"
all: main
# [target]: [dependencies]
# <tab> system command
main: main.o
@$(print_linking)
@$(CC) -o $(EXECUTABLE) main.o $(LIBS) >> /dev/null
main.o: main.cpp
@$(print_compiling)
@$(CC) $(CFLAGS) main.cpp
clean:
@$(print_cleaning)
@rm -rf *.o *~ $(EXECUTABLE)