Как я решаю эту простую проблему с CodeBlock? - PullRequest
0 голосов
/ 09 апреля 2020

Я новичок и имею 3 файла для суммирования рекурсивного массива.

array.h

int sum(int n, int a[]);
void create_array(int n, int a[]);

array. c

#include<stdio.h>
#include<stdlib.h>
#include "array.h"
void create_array(int n, int a[]){
    int i;
    for( i=0;i<n;i++){
        printf("Inserire il %d elemento dell'array\n",i);
        scanf("%d",&a[i]);
    }
    return;
}

int sum(int n, int a[]){
    if(n>0){
        return a[n-1]+sum(n-1,a);
    }
    return 0;
}

основной. c

#include <stdio.h>
#include <stdlib.h>
#include "array.h"

int main()
{
    printf("Inserire la dimensione dell'array\n");
    int n;
    scanf("%d",&n);
    int a[n];
    create_array(n,a);
    int res=sum(n,a);
    printf("La somma degli elementi e' %d\n", res);
    return 0;
}

ПРОБЛЕМЫ

||=== Build file: "no target" in "no project" (compiler: unknown) ===|
undefined reference to `create_array'|
undefined reference to `sum'|
||error: ld returned 1 exit status|

Я поместил эти 2 файла в один каталог. Если я компилирую и запускаю их с помощью терминала cmd Windows, они запускаются. Но если я пытаюсь скомпилировать из IDE CodeBlocks говорит об этом ошибки. Кто-нибудь поможет?

1 Ответ

0 голосов
/ 09 апреля 2020

Существует проблема с тем, как вы сказали Code :: Blocks, что все эти файлы связаны.

Что я сделал:

■ открыл IDE и нажал NewFile-> Пустой файл

■ скопировал первый блок кода, вставил его и сохранил как array.h

■ скопировал второй блок кода, вставил его и сохранил как массив. c

■ скопировал третий блок кода, вставил его и сохранил как основной. c

■ Нажмите «Построить и запустить»

Затем получил точно такой же набор ошибок, что и вы сделали.

То, что вам нужно было сделать вместо этого, нажмите Новый файл-> Проект, выберите Консольное приложение, выберите C, введите имя проекта (exe будет иметь то же имя по умолчанию, хотя вы можете изменить это) Оттуда вы получите созданную папку, содержащую файл .CBP и основной файл. c. Затем вы можете нажать «Новый файл», и на этот раз вам будет предложено добавить его в текущий проект.

...