在 premake4 中将 C++ 与 C 混合?

Mix C++ with C in premake4?

我正在尝试使用 premake4 to compile a C++ OpenGL project. And I choose glad 来帮助我实现跨平台。

于是,我写了下面的脚本premake4.lua

solution "skinned-animation"
    configurations { "Debug", "Release" }

project "skinned-animation"
    kind "ConsoleApp"
    language "C++"
    linkoptions { "-L/usr/local/lib", "-lboost_system", "-lboost_filesystem", "-lglfw" }

    includedirs { "../prerequisite", "/usr/local/include" }
    files { "../skinned-animation/**.h", "../skinned-animation/**.cpp", "../skinned-animation/**.c" }

    buildoptions { "-std=c++14" }

然而,问题是 premake 会对所有 C(实际上只有 glad.c)和 C++ 文件施加标志 -std=c++14。这会导致错误。

我们如何区分CC++并给他们不同的标志,因为premake4没有filter

最后,我选择先编译glad.c到静态库,然后link编译到我的项目:

clang -c glad.c
ar rcs libglad.a glad.o