我有一个名为 AceLibraryLinux 的自定义库,我正在尝试在我制作的名为 RumPi(我正在制作的 Raspberry Pi 应用程序)的 C++ Linux 程序中使用它。 .a 文件名为“AceLibraryLinux.a”,但是 make 文件未找到该库。我尝试使用 -L 指定路径并修改 make build 命令,但我无法让它工作。这是目录结构的截图
这就是 MakeFile 当前的样子。 LDFlags 最初不存在,我尝试添加它以尝试解决问题,因此它很可能是不正确的:
CXX = g++
CXXFLAGS = -std=c++11
LDLIBS = -lwiringPi -lpthread -li2c -lAceLibraryLinux
LDFLAGS = -L. -lAceLibraryLinux -static
HEADERS = ./AceLinux.h ./Common.h Components/Headers/RumPi.h Components/Headers/Component.h Components/Headers/AnalogDigitalConverterComponent.h Components/Headers/Vehicle.h Components/Headers/Motor.h Components/Headers/Receiver.h Components/Headers/DualLED.h Components/Headers/LED.h Components/Headers/RGBLED.h Components/Headers/Relay.h Components/Headers/LCD1602.h Components/Headers/PCF8591.h Components/Headers/GasData.h Components/Headers/GasSensor.h Components/Headers/RotaryEncoder.h Components/Headers/HumiditySensor.h Components/Headers/SoundSensor.h Components/Headers/BMP180.h Components/Headers/BMP280.h Components/Headers/HCSR501.h Components/Headers/PiCamera.h Components/Headers/MCP3008.h
OBJECTS = RumPi.o Vehicle.o Motor.o Receiver.o DualLED.o LED.o RGBLED.o Relay.o LCD1602.o PCF8591.o GasData.o GasSensor.o RotaryEncoder.o HumiditySensor.o SoundSensor.o BMP180.o BMP280.o HCSR501.o PiCamera.o MCP3008.o
default: RumPi
RumPi: $(OBJECTS)
$(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
%.o: Components/Implementations/%.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
$(OBJECTS): $(HEADERS)
clean:
-rm -f $(OBJECTS)
-rm -f RumPi
再次感谢,正如评论者所指出的,LDLIBS 上的名称需要更改为“AceLibraryLinux.a”,并且我删除了 LDFLAGS 行,因为它没有必要或正在使用。这是固定的 make 文件:
CXX = g++
CXXFLAGS = -std=c++11
LDLIBS = -lwiringPi -lpthread -li2c AceLibraryLinux.a
HEADERS = ./AceLinux.h ./Common.h Components/Headers/RumPi.h Components/Headers/Component.h Components/Headers/AnalogDigitalConverterComponent.h Components/Headers/Vehicle.h Components/Headers/Motor.h Components/Headers/Receiver.h Components/Headers/DualLED.h Components/Headers/LED.h Components/Headers/RGBLED.h Components/Headers/Relay.h Components/Headers/LCD1602.h Components/Headers/PCF8591.h Components/Headers/GasData.h Components/Headers/GasSensor.h Components/Headers/RotaryEncoder.h Components/Headers/HumiditySensor.h Components/Headers/SoundSensor.h Components/Headers/BMP180.h Components/Headers/BMP280.h Components/Headers/HCSR501.h Components/Headers/PiCamera.h Components/Headers/MCP3008.h
OBJECTS = RumPi.o Vehicle.o Motor.o Receiver.o DualLED.o LED.o RGBLED.o Relay.o LCD1602.o PCF8591.o GasData.o GasSensor.o RotaryEncoder.o HumiditySensor.o SoundSensor.o BMP180.o BMP280.o HCSR501.o PiCamera.o MCP3008.o
default: RumPi
RumPi: $(OBJECTS)
$(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
%.o: Components/Implementations/%.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
$(OBJECTS): $(HEADERS)
clean:
-rm -f $(OBJECTS)
-rm -f RumPi