【发布时间】:2021-10-11 10:40:02
【问题描述】:
我正在尝试包含来自 here 的 Eclipse Mosquitto 库示例 mosquitto 示例
我正在尝试使用 Makefile 来构建和编译代码。
我遇到的问题是编译器/链接器/任何东西都找不到位于 C:\Program Files\Mosquitto\devel 的 mosquitto 库。 这是错误:
mqtt-hostlink> make
gcc -Wall -o main main.c -LC:\\Program ,_,Files\\Mosquitto\\devel\mosquitto.lib
gcc: error: ,_,Files\Mosquitto\devel\mosquitto.lib: No such file or directory
make: *** [Makefile:11: make] Error 1
这是我的 Makefile:
CC = gcc
null :=
SPACE := $(null) $(null)
LIBS = -LC:\\Program$(SPACE),_,Files\\Mosquitto\\devel\mosquitto.lib
%.o: %.c
$(CC) -c -o $@ $<
make: main.c
$(CC) -Wall -o main $^ $(LIBS)
.PHONY: clean
我提到的“空间”方法:How to escape spaces inside a Makefile
【问题讨论】:
-
LIBS = "C:\\Program Files\\Mosquitto\\devel\\mosquitto.lib"怎么样?选项-L用于指定包含库文件的目录,而不是库文件本身。顺便说一句:Makefile 规则make: main.c应该在您的命令创建main时创建文件make。 -
@Bodo 对不起,我听不懂最后一句话。您的意思是使用命令
make: main.c创建一个名为make的文件? -
@hweiu321 -L 用于指定库的搜索目录,-l 用于指定要绑定的库,您可以这样尝试 LIBS = "C:\\Program Files\ \Mosquitto\\devel -lmosquitto",不确定make是否会追加.lib,你也可以试试"LIBS=-l C:\\Program Files\\Mosquitto\\devel\\mosquitto.lib"
标签: c makefile libmosquitto