На самом деле я пытаюсь скомпилировать проект 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. Может ли это быть проблемой?
Правильный способ будет включать эти включения в исходные файлы, где вы используете методы, которые определены в них.
Но если вы настаиваете, чтобы включить его через make-файл, вы можете использовать сила включает.
Чтобы установить этот параметр компилятора в разработке Visual Studio
среда Откройте диалоговое окно «Страницы свойств» проекта.Откройте страницу свойств проекта.
Нажмите на папку C / C ++.
Нажмите на страницу свойств Advanced.
Измените свойство Force Includes.
или использовать -include path_to_the_header
за НКУ
Просто добавьте эту опцию в командную строку компиляции. Удачи.