我试图包括Eclipse蚊库样本蚊的例子从这里
我正在尝试使用Makefile来构建和编译代码。
我正面临一个问题,编译器/链接器/任何不能找到蚊库位于C:Program FilesMosquittodevel.下面是错误:
mqtt-hostlink> make
gcc -Wall -o main main.c -LC:\Program ,_,Files\Mosquitto\develmosquitto.lib
gcc: error: ,_,FilesMosquittodevelmosquitto.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\develmosquitto.lib
%.o: %.c
$(CC) -c -o $@ $<
make: main.c
$(CC) -Wall -o main $^ $(LIBS)
.PHONY: clean
"space"如何在Makefile
中转义空格您可以直接使用tar目录的简称。列出带有/X选项的目录,如下
C:>dir /X p*
Directory of C:
09/06/2021 02:24 PM <DIR> PROGRA~1 Program Files
09/06/2021 01:29 PM <DIR> PROGRA~2 Program Files (x86)
0 File(s) 0 bytes
那就用PROGRA~1
代替Program Files
这里有些混乱。那篇文章是关于如何从make函数中逃脱空间。您并没有试图在这里调用任何make函数,您只是试图在命令行中使用一个变量。没有必要在make中转义任何内容。
你需要做的就是逃避的空间壳,不是从。你可以很容易地做到这一点,只需要使用引号。不需要花哨的make操作。我还建议您使用正斜杠,而不是反斜杠。几乎所有的Windows程序都接受正斜杠和反斜杠。只有cmd.exe
内置插件没有。
LIBS = "-LC:/Program Files/Mosquitto/devel/mosquitto.lib"