链接器错误:/ usr / bin / ld:找不到-lc

时间:2017-08-29 12:13:23

标签: c linux gcc makefile clang

我正在尝试编译this code一段时间。具体来说,我正在尝试使用给定的mac编译avx2代码。但是,我总是收到以下错误。 我已经查了很多但无法找到解决方案。如果你帮我找到解决方案,我将非常高兴。

  

/ usr / bin / ld:找不到-lc

     

collect2:错误:ld返回1退出状态

     

make:*** [test / test_kyber]错误1

gcc版

  

gcc(GCC)4.8.5 20150623(Red Hat 4.8.5-11)

     

版权所有(C)2015 Free Software Foundation,Inc。

     

这是免费软件;查看复制条件的来源。没有   保证;甚至不适用于适销性或特定用途的适用性。

Clang版本:

  

clang version 3.4.2(tags / RELEASE_34 / dot2-final)

     

目标:x86_64-redhat-linux-gnu

     

线程模型:posix

输出运行make命令。

  

/ usr / bin / gcc -Wall -Wextra -O3 -fomit-frame-pointer -msse2avx -mavx2 -march = native -static -o test / test_kyber kyber.c poly.c polyvec.c fips202.o fips202x4。 c precomp.c ntt.c verify.c indcpa.c consts.c kex.c nttlevels0t4.s nttlevels5t7.s mul_coefficients.s polyvec_pointwise_acc.s poly_add.s poly_sub.s cbd.s poly_freeze.s crypto_stream_aes256ctr.c keccak4x / KeccakP- 1600次4-SIMD256.o randombytes.c test / test_kyber.c

     

/ usr / bin / ld:找不到-lc

     

collect2:错误:ld返回1退出状态

     

make:*** [test / test_kyber]错误1

1 个答案:

答案 0 :(得分:1)

非常感谢你的帮助和时间。我明白了这个问题。 makefile添加了一个-static标志,但在我们的办公室机器上,我们没有静态的libc.a.因此,错误“找不到-lc”。我删除了静态标志,现在工作正常。 我认为我们不需要静态的libc.a,但我必须更仔细地检查。