【问题标题】:xcode Undefined symbols for architecture x86_64: "_err_quit", referenced from:xcode 架构 x86_64 的未定义符号:“_err_quit”,引用自:
【发布时间】:2016-11-28 07:10:46
【问题描述】:

i 在 mac 中使用 xcode 键入套接字示例:

//
//  main.c
//  testsocket
//
//  Created by YiranWang on 17/11/2016.
//  Copyright © 2016 YiranWang. All rights reserved.
//

//#include "unp.h"
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <stdio.h>
#define SERV_PORT 9987
#define SA struct sockaddr
#define LISTENQ 1024

int main(int argc, const char * argv[]) {
    struct sockaddr_in cliaddr,servaddr;
    pid_t childpid;
    int listenfd,connfd;
    socklen_t clien;
    listenfd = socket(AF_INET, SOCK_STREAM, 0);
    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servaddr.sin_port = htons(SERV_PORT);
    bind(listenfd, (SA *)&servaddr, sizeof(servaddr));
    listen(listenfd, LISTENQ);
    for (; ; ) {
        clien = sizeof(cliaddr);
        connfd = accept(listenfd, (SA *)&cliaddr, &clien);
        if ((childpid = fork()) == 0) {
            close(listenfd);
            str_echo(connfd);
            exit(0);
        }
        close(connfd);
    }
}

当我构建时,它错误

【问题讨论】:

  • 文字...请...
  • 你显示的代码调用str_echo。该函数在哪里定义(实现)?
  • 忘记链接所需的库?另外,看起来确实需要unp.h
  • 我投票结束这个问题,因为 这个问题是由无法再复制的问题或简单的印刷错误引起的。虽然类似的问题可能是这里的主题,但这个问题的解决方式不太可能帮助未来的读者。这通常可以通过在发布之前确定并仔细检查重现问题所需的最短程序来避免。

标签: c xcode linker


【解决方案1】:

我尝试了一些方法 DerivedData 并为您的项目目标更改“架构”
Xcode build failure "Undefined symbols for architecture x86_64" 但不起作用。

最后我发现有些函数没有被引用,所以我添加了它工作的函数定义。 @Sourav Ghosh 感谢您的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2021-03-12
    • 2016-11-07
    • 2015-11-24
    • 2013-03-09
    • 2013-02-07
    • 2016-11-05
    相关资源
    最近更新 更多