LLVM报错解决:/usr/bin/ld: cannot find -lz和/usr/bin/ld: cannot find -lncurses

晚上在用LLVM时报错如下:

g++ `llvm-config-3.9 --cppflags` -std=c++11 -o compiler  main.o   `llvm-config-3.9 --libs` `llvm-config-3.9 --ldflags` -lpthread -ldl -lz -lncurses -rdynamic -L/usr/local/lib -ljsoncpp
/usr/bin/ld: cannot find -lz
/usr/bin/ld: cannot find -lncurses

这个报错跟LLVM无关,是G++的问题:

root@debian:/home/zhang# g++ -lz
/usr/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status

这是缺少了必要的库文件,输入如下命令安装:

sudo apt install build-essential zlib1g-dev libssl-dev libsqlite3-dev libbz2-dev libreadline-dev 

然后再运行就有库了:

root@debian:/home/zhang# g++ -lz
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status

另外一个还是缺少库文件:

root@debian:/home/zhang# g++ -lncurses
/usr/bin/ld: cannot find -lncurses
collect2: error: ld returned 1 exit status

我在网上查找资料,始终没找到需要哪个库文件。
然后我尝试了很多方法,最终找到了需要的库:

apt-get install libncurses-dev build-essential linux-headers-`uname -r`

然后再运行命令:

root@debian:/home/zhang# g++ -lncurses
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status

你可能感兴趣的:(linux,行走的问题解决机,编译原理)