Попытка использовать MSBuild и файл csproj для компиляции файлов C

#c #msbuild

Вопрос:

проект.csproj

     <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
            <ItemGroup>
                    <Compile Include="main.c" />
            </ItemGroup>
            <Target Name="Build">
                    <Csc Sources="@(Compile)"/>
            </Target>
    
    </Project>
 

главная.c

 #include <stdio.h>


    int main(int argc, char* argv) {
    
            printf("Hello World");
    
    
            return 0;
    
    }
 
 MSBuild.exe project.csproj -t:Build
 

Я получаю сообщение об ошибке с надписью «ожидается директива препроцессора».

Сборка НЕ УДАЛАСЬ.

«C:UsersmichaProjects3dworld-windows-Csrcproject.csproj» (цель по умолчанию) (1) -> (Цель сборки) ->> main.c(1,2): ошибка CS1024: ожидается директива препроцессора [C:UsersmichaProjects3dworld-windows-Csrcproject.csproj]

 0 Warning(s)
1 Error(s)
 

Может ли MSBuild компилировать файлы .c? Как бы я мог скомпилировать C с помощью MSBuild. Когда я компилирую main.c с помощью gcc, проблем нет.

Комментарии:

1. Поэтому после дальнейших поисков я обнаружил cl.exe для программ на c, но он не может найти stdio.h. В Visual Studio, похоже, нет копии этого файла. Каков наилучший способ получить доступ к stdio.h? Должен ли я загрузить заголовки?

Ответ №1:

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