Memcpy не был объявлен в этой области при использовании компилятора gcc

На самом деле я пытаюсь скомпилировать проект c / c ++ с помощью mingw. Этот же проект фактически компилируется с помощью компилятора visual studio. Для этого я написал make-файл, и пока все работает.

Во время компиляции я получаю сообщение об ошибке в отношении функций, которые объявлены с помощью string.h и stdio.h, таких как memcpy (), printf () …, со следующей ошибкой:

error: 'memcpy' was not declared in this scope

Это потому, что компилятор не нашел функции. При компиляции в visual studio эта ошибка не возникала, по логике, из-за того, что компилятор включал следующие пути:

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\

Мой вопрос сейчас:
Что я должен сделать в своем make-файле, чтобы сказать компилятору использовать функции «string.h» и «stdio.h» из mingw. Я попытался поместить путь включения в make-файл, например:

 INCLUDE_DIRS =\
C:\MinGW\include

но это не имеет никакого эффекта.
Кроме того, есть разница между string.h и stdio.h от visual studio и string.h и stdio.h, используемыми gcc. Может ли это быть проблемой?

-2

Решение

Правильный способ будет включать эти включения в исходные файлы, где вы используете методы, которые определены в них.
Но если вы настаиваете, чтобы включить его через make-файл, вы можете использовать сила включает.

Визуальная студийная ссылка.

Чтобы установить этот параметр компилятора в разработке Visual Studio
среда Откройте диалоговое окно «Страницы свойств» проекта.

Откройте страницу свойств проекта.

Нажмите на папку C / C ++.

Нажмите на страницу свойств Advanced.

Измените свойство Force Includes.

или использовать -include path_to_the_header за НКУ

Просто добавьте эту опцию в командную строку компиляции. Удачи.

0

Другие решения