Функции string.h и stdlib.h выдают мне ошибку: неопределенная ссылка на '...' - PullRequest
0 голосов
/ 04 мая 2018

Я модифицирую проект c и впервые пытаюсь использовать библиотеки stdlib.h и string.h в своем проекте. Я работаю над MCUXpresso (IDE на основе затмения). Это мой код:

#include <string.h>
#include <stdlib.h>
#include "config.h"

int number=100;
int n1,n2;
char test[5]="test";
char str[5];

extern void fntest(TTASKTABLE *ptrTaskTable)
{
    itoa (number,str,10);
    n1=strlen(test);
    n2=atoi(test);
}

Как видите, я включил заголовочные файлы, но компилятор выдает ошибки: неопределенная ссылка на 'itoa'; неопределенная ссылка на 'strlen'; неопределенная ссылка на 'atoi' И в моей папке include уже есть (по умолчанию в моем проекте) папка, содержащая стандартные библиотеки. Я вижу, что функции используются в некоторых других файлах в проекте ... Я не могу понять, почему у меня есть эта ошибка. В оригинальном коде функции находятся в теле функции, я исправил это. Можете ли вы помочь мне, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

наконец я решил свою проблему! Я просто должен был изменить настройки компоновщика: проект -> свойства -> сборка C / C ++ -> настройки -> компоновщик MCU -> общие и формы изменений. больше ошибок нет!

0 голосов
/ 04 мая 2018

Я не знаю, опубликовали ли вы свой реальный код, но на данном этапе, поскольку вы загрузили, он не собирается компилироваться.

#include <string.h>
#include <stdlib.h>
#include "config.h"

int number=100;        // This is okay
int n1, n2;            // This is okay
char test[5]="test";   // This is okay
char str[5];           // This is okay

itoa (number,str,10);  // This is wrong
n1=strlen(test);       // This is wrong
n2=atoi(test);         // This is wrong

Что бы я ни добавил к комментарию // This is wrong, это потому, что они должны быть в теле функции.

Теперь, так как вы уже заявили,

Я вижу, что функции используются в некоторых других файлах проекта ..

Мне не нужно предоставлять вам способ реализации функции itoa.

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

...