架构+链接器命令中未找到的符号因退出代码1而失败

时间:2015-01-29 22:35:15

标签: c++ xcode linker command

我一直在讨论这个问题。我已经搜索了所有我似乎找到的相同错误消息的问题,但涉及建立完整的iPhone应用程序或处理头文件,各种各样的东西。

我只是编写一个简单的C ++程序,除了典型的iostream,stdlib.h和time.h之外没有头文件。这是一个非常简单的大学作业,但我不能继续工作,因为Xcode给了我这个与实际代码无关的错误(基于我读过的内容)。除了实际的.cpp文件之外,我没有搞砸任何其他东西,我甚至不知道我怎么会搞砸了。我以同样的方式完成了多项任务,之前从未遇到过这个问题。

当前代码:

#include <iostream>
#include <stdlib.h>
#include <time.h>


using namespace std;

//functions
void funcion1(int matriz, int renglones, int columnas);
void funcion2(int matriz, int renglones, int columnas);

//variables
int renglones=8;
int columnas=8;
int ** matriz = new int*[renglones];

int main()
{   
    //reservar columnas
    for (int i=0; i < renglones; i++)
    {
        matriz[i] = new int[columnas];
    }

    srand(time(NULL));
    funcion1(**matriz, renglones, columnas);
    funcion2(**matriz, renglones, columnas);
}

void funcion1(int **matriz, int renglones, int columnas)
{
    for (int y = 0; y <= renglones; y++)
    {
        for (int x = 0; x <= columnas; x++)
        {
            matriz[y][x] = rand() % 10;
        }
    }
}

void funcion2(int **matriz, int renglones, int columnas)
{
    for (int y = 0; y <= renglones; y++)
    {
        for (int x = 0; x <= columnas; x++)
        {
            cout << matriz[y][x] << " ";
        }
        cout << "\n";
    }
}

错误屏幕的屏幕截图 Screenshot of error screen

编辑:修正了以下代码。

void funcion1(int **matriz, int renglones, int columnas)
{
    for (int y = 0; y < renglones; y++)
    {
        for (int x = 0; x < columnas; x++)
        {
            matriz[y][x] = rand() % 10;
        }
    }
}

void funcion2(int **matriz, int renglones, int columnas)
{
    for (int y = 0; y < renglones; y++)
    {
        for (int x = 0; x < columnas; x++)
        {
            cout << matriz[y][x] << " ";
        }
        cout << "\n";
    }
}

1 个答案:

答案 0 :(得分:3)

您未能将funcion1(int, int, int)funcion2(int, int, int)函数提供给链接器。你在main()程序中调用它们,但链接器找不到它。

不,这不会调用您的funcion1(int**, int, int)函数:

funcion1(**matriz, renglones, columnas);

您在两个级别取消引用int**,从而产生int。您拨打funcion2时也是如此。


调用funcion1(**matriz, renglones, columnas)函数:

funcion1(matriz, renglones, columnas);

funcion2(int **, int, int);

相同
funcion2(matriz, renglones, columnas);