Tôi đã sau makefileLàm thế nào để bao gồm thư viện tĩnh trong makefile
CXXFILES = pthreads.cpp
CXXFLAGS = -O3 -o prog -rdynamic -D_GNU_SOURCE -L./libmine
LIBS = -lpthread -ldl
all:
$(CXX) $(CXXFILES) $(LIBS) $(CXXFLAGS)
clean:
rm -f prog *.o
Tôi cố gắng để bao gồm các thư viện ./libmine
trong CXXFLAGS
, nhưng nó có vẻ như nó không phải là cách đúng đắn để bao gồm thư viện tĩnh, bởi vì khi tôi biên dịch chương trình, tôi nhận được nhiều lỗi tham chiếu không xác định. Vì vậy, những gì thực sự là đúng cách để bao gồm một thư viện tĩnh trong makefile?
Bạn có thể giải thích một chút về cách thức hoạt động của nó không? – Tony
OP đã thêm '-L./Libmine' vào phần biên dịch' gcc' và liên kết nhưng không thêm 'libmine.a'. '-L./Libmine' yêu cầu' gcc' nhìn vào thư mục './Libmine' để tìm kiếm các tệp đối tượng và thư viện. Thêm 'libmine.a' cho' gcc' bạn muốn liên kết tệp thực thi của bạn với thư viện 'libmine.a'. – ouah
LIBS = libmine.a không hoạt động với -L./libmine. – fchen