продолжайте получать эту ошибку в этой системе "команда компоновщика не выполнена с кодом выхода 1" - PullRequest
0 голосов
/ 28 марта 2019

Я делаю систему меню, в которой пользователь вводит определенное количество цифр, а система выводит среднее и сумму, а затем отображает числа, которые пользователь ввел в систему, но я не смог получитьпока я получаю это сообщение об ошибке «clang: error: команда линкера завершилась неудачно с кодом выхода 1 (используйте -v, чтобы увидеть вызов)».

#include <stdio.h>
#include <stdlib.h>
#define LIMIT 1000
#define PAUSE system("pause")

//prototype functions

int getChoice();
int getNumbers(int numbers[], int eSize);
void displayAllNumbers(int array[], int eSize);
void displayAverage(int numbers[], int eSize);
void showSum(int numbers[], int eSize);

int main(){

int choice;
int numbers[LIMIT] = {0};
int eSize = 0;

do{
    choice = getChoice();
    switch(choice){
        case 1: //get a bunch of numbers from user
            eSize = getNumbers(numbers, eSize);
            break;
        case 2: //show the sum of the user-entered numbers
            showSum( numbers, eSize);
            break;
        case 3: //show the average of the user-entered numbers
            displayAverage(numbers, eSize);
            break;
        case 4: //show the numbers
            displayAllNumbers(numbers , eSize);
            break;
        case 5: //quit the program
            printf("thank you for using my program!\n");
            PAUSE;
            break;
        default:
            printf("invalid choice... please try again!\n");
            PAUSE;
            break;
    }//end of switch

}while(choice != 5);
//end of dowhile


}//end of main```

Ответы [ 2 ]

1 голос
/ 28 марта 2019

Ошибки компоновщика обычно возникают, когда компилятор не может найти определения функций, используемые в программе. Возможно, вы не компилируете другие исходные файлы. Если определение функций:

int getChoice();
int getNumbers(int numbers[], int eSize);
void displayAllNumbers(int array[], int eSize);
void displayAverage(int numbers[], int eSize);
void showSum(int numbers[], int eSize);

находятся в другом файле, скажем functions.c, а main.c содержит функцию main(), тогда вам придется скомпилировать их как clang main.c functions.c <other options> -o <output file>

0 голосов
/ 28 марта 2019

Исходный файл, который вы показали, содержит только определение main(). Другие вспомогательные функции, такие как getChoice() и т. Д., Только что объявлены, а определение отсутствует в текущем файле. Если определения этих вспомогательных функций находятся в других файлах, их также следует скомпилировать.

Если предположить, что main() включено в main.c, а вспомогательные функции находятся в helper.c, то команда для их компиляции в gcc будет

gcc main.c helper.c -o executive_name

Лучший способ справиться с этим - поместить все прототипы функций (или объявления) в файл заголовка, скажем, helper.h, и включить вспомогательный файл как в main.c, так и в helper.c

.
...