Мне интересно, могу ли я добавить файл 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" }
возможно, это правда, я не был до конца уверен, поэтому просто добавил на всякий случай
Проекты Visual Studio поддерживают файлы C++ и C. Самое главное, что сразу приходит на ум на уровне проекта, — это то, что предварительно скомпилированная система заголовков не совместима с обеими одновременно. Он будет работать с любым из них, но если у вас есть файлы C++ и C в одном проекте, вам нужно будет вручную настроить один из них, чтобы он не использовал предварительно скомпилированные заголовки (или иметь другой предварительно скомпилированный заголовок для файлов C++ и C).
Если вы вообще не используете PCH, вам не нужно будет выполнять какое-либо ручное переопределение.
Также обратите внимание, что вам понадобится обычная оболочка «extern «C», гарантирующая совпадение объявлений между двумя частями.
Кажется, что
conan
не имеет отношения к этому вопросу, похоже, речь идет только о предварительной конфигурации проекта.