продолжать получать эту ошибку в этой системной & ldquo; команде линкера не удалось с кодом выхода 1 & rdquo;

Прямо из спецификаций API для ClassCastException :

Брошено, чтобы указать, что код попытался передать объект подклассу, из которого он не экземпляр.

Так, например, когда вы пытаетесь передать Integer в String, String не является подклассом Integer, поэтому a ClassCastException.

Object i = Integer.valueOf(42);
String s = (String)i;            // ClassCastException thrown here.

0
задан LuDu 28 March 2019 в 03:58
поделиться

2 ответа

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

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
ответ дан Suven Pandey 28 March 2019 в 03:58
поделиться

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

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

gcc main.c helper.c -o executive_name

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

.
0
ответ дан SRK 28 March 2019 в 03:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: