为什么在构建此C项目时出现所有这些错误?

时间:2012-03-13 22:58:41

标签: c xcode build compilation header

我在C中编写了一些类似的程序,作为XCode项目的一部分。由于这个新程序需要展示一些与第一次迭代工作略有不同的功能,我认为目标是最好用的。

所以我尝试创建一个新目标,并按照我认为从谷歌搜索方式(在XCode中)的正确方式进行。但是在编译时,我遇到了太多错误。

这是我得到的错误的屏幕: enter image description here

我发现它存在大量不同字符的问题,所以我确定它可能是一个简单的问题,比如一些丢失的文件。但我不知道谷歌是什么,所以我希望我可以问。

在相关的说明中,有没有人知道为什么我的第一个程序版本,名为main.c,不需要像上面那样包含头文件?

谢谢!

编辑: 这是来自新目标的代码,它几乎与迄今为止未更改的程序第一版相同:

/*
 *  ScalarProduct.c
 *  Concurrency_Practical1
 *
 *  Created by Chucky on 11/03/2012.
 *  Copyright 2012 __MyCompanyName__. All rights reserved.
 *
 */

#include "ScalarProduct.h"
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

//the final answer
int finalScalarProd;

//random variable
int rand_seed=10;

int rand()
{
    int n;
    n = random()%11;
    //printf("%d\n", n);
    return(n);
}

void* getScalarProduct(void *arg)
{
    //index for loop
    int i;

    //scalarProduct of 10 integers
    int * scalarProd = (int *) arg;

    //my two arrays
    int list1[10];
    int list2[10];

    for (i=0; i<10; i++) {
        list1[i] = rand();
        list2[i] = rand();
        *scalarProd += list1[i]*list2[i];
        printf("%d:\t\t %d\t\t %d\t\t %d\t\t\n", i, list1[i], list2[i], list1[i]*list2[i]);
    }
    return((void*)scalarProd);
}

int main (int argc, const char * argv[]) {
    // insert code here...

    pthread_t t1, t2;
    int sp1= 0, sp2 = 0;

    printf("Index\t List1\t List2\t Product\n\n");

    pthread_create( &t1, NULL, getScalarProduct, &sp1);
    pthread_create( &t2, NULL, getScalarProduct, &sp2);
    pthread_join( t1, NULL);
    pthread_join( t2, NULL);

    printf("\nScalar Products: %d %d\n", sp1, sp2);
    finalScalarProd = sp1 + sp2;


    printf("Result: %d\n", finalScalarProd);

    return 0;
}

2 个答案:

答案 0 :(得分:0)

从错误中看,它几乎看起来好像是在混合Objective-C头并使用C编译器进行编译。但是,它仍然很难说。

答案 1 :(得分:0)

您的项目包含/导入AppKit-Header,它是ObjectiveC而非纯C.

由于你的引用来源没有提到它,我敢打赌它是在预编译的头文件中导入的。检查项目的预编译标题以获取此类条目。它的名称就像您的项目一样,扩展名为.pch。您可能想要删除任何ObjectiveC导入。

同时检查您是否在项目中使用了任何ObjectiveC框架。如有疑问,请从项目中删除所有列出的框架。