在Linux系统下进行Flex/Bison试验中,需要调用数学库函数时报错:

cc编译的时候也要在指令后面加 -lm:

rookie@rookie-PC:~/Desktop$ cc fb3-2.tab.c fb3-2.lex.c fb3-2funcs.c -lm

即可编译成功。

编译成功即可生成可执行文件。

原因:缺少某个库,用 -l 参数将库加入。Linux的库命名是一致的, 一般为 libxxx.so, 或 libxxx.a, libxxx.la, 要链接某个库就用  -lxxx,去掉头 lib 及 "." 后面的 so, la, a 等即可。

常见的库链接方法为:数学库 -lm; posix 线程 -lpthread

文章参自Linux公社,原文地址https://www.linuxidc.com/Linux/2018-11/155614.htm