C语言 转义LIBS路径中的空格



我试图包括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"

相关内容

  • 没有找到相关文章

最新更新