【问题标题】:Compilation error in GCC on LinuxLinux 上 GCC 中的编译错误
【发布时间】:2012-10-06 17:17:51
【问题描述】:

我正在尝试为GnuTLS 编译我的代码,但在编译时出现以下错误。

我已检查gnutls.h 是否存在于我的系统中的/usr/include/gnutls/

还有什么原因?

gcc -o tls.o tls.c  
/tmp/ccfyZ1Bd.o: In function `main':  
tls.c:(.text+0x1c): undefined reference to `gnutls_global_init'  
tls.c:(.text+0x28): undefined reference to `gnutls_anon_allocate_client_credentials'  
tls.c:(.text+0x3c): undefined reference to `gnutls_init'  
tls.c:(.text+0x58): undefined reference to `gnutls_priority_set_direct'  
tls.c:(.text+0x74): undefined reference to `gnutls_credentials_set'  
tls.c:(.text+0x79): undefined reference to `tcp_connect'  
tls.c:(.text+0x91): undefined reference to `gnutls_transport_set_ptr'  
tls.c:(.text+0x9d): undefined reference to `gnutls_handshake'
tls.c:(.text+0xdc): undefined reference to `gnutls_perror'  
tls.c:(.text+0x109): undefined reference to `gnutls_record_send'  
tls.c:(.text+0x125): undefined reference to `gnutls_record_recv'  
tls.c:(.text+0x154): undefined reference to `gnutls_strerror'  
tls.c:(.text+0x1e6): undefined reference to `gnutls_bye'  
tls.c:(.text+0x1f2): undefined reference to `tcp_close'  
tls.c:(.text+0x1fe): undefined reference to `gnutls_deinit'  
tls.c:(.text+0x20a): undefined reference to `gnutls_anon_free_client_credentials'  
tls.c:(.text+0x20f): undefined reference to `gnutls_global_deinit'  
collect2: ld returned 1 exit status

【问题讨论】:

  • 你已经要求 gcc 输出一个文件 tls.o。通常 *.o 文件是已编译但未链接的目标文件。但默认情况下,gcc 会尝试链接其输入。如果您打算编译但尚未链接,请为 gcc 提供 -c 标志。

标签: c gnutls


【解决方案1】:

这是一个链接错误。您需要包含一些带有-l 标志的库。在不知道您的设置的情况下进行疯狂猜测,我会尝试-lgnutls

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    相关资源
    最近更新 更多