Создание решения Visual Studio с использованием C и C++

Мне интересно, могу ли я добавить файл C в проект C++. Я использую premake5 и conan, чтобы получить зависимости и построить решение, но каждый файл, который я использовал до сих пор, — это C++. Теперь мне нужен файл C с деревом kdtree, который мне нужен для создания новых функций в моем движке. Но я не знаю, смогу ли я работать одновременно с C и C++ в одном проекте и как это сделать. Это мое определение Lua для проекта. Что я могу сделать, чтобы добавить в проект один файл C?

project"Particles"

  kind "ConsoleApp"
  language "C++"
  targetdir "../build/%{prj.name}/%{cfg.buildcfg}"
  includedirs { "../include", "../deps/include", "../include/engine", "../deps/include/stb", "../deps/include/imgui", "../deps/include/tests" }
  conan_config_exec()
  debugargs { _MAIN_SCRIPT_DIR .. "/examples/data" }
  files {
    "../deps/src/**",
    "../deps/include/**",
    "../src/**",
    "../include/**",
    "../tests/particles_test.cpp",
    "../assets/**",
  }
  filter "files:**.obj"
      flags { "ExcludeFromBuild" }

🤔 А знаете ли вы, что...
C++ обладает высокой производительностью и эффективностью в использовании ресурсов.


1
86
1

Ответ:

Решено

Проекты Visual Studio поддерживают файлы C++ и C. Самое главное, что сразу приходит на ум на уровне проекта, — это то, что предварительно скомпилированная система заголовков не совместима с обеими одновременно. Он будет работать с любым из них, но если у вас есть файлы C++ и C в одном проекте, вам нужно будет вручную настроить один из них, чтобы он не использовал предварительно скомпилированные заголовки (или иметь другой предварительно скомпилированный заголовок для файлов C++ и C).

Если вы вообще не используете PCH, вам не нужно будет выполнять какое-либо ручное переопределение.

Также обратите внимание, что вам понадобится обычная оболочка «extern «C», гарантирующая совпадение объявлений между двумя частями.