首页 > 解决方案 > 在 premake4 中将 C++ 与 C 混合?

问题描述

我正在尝试使用premake4编译C++ OpenGL项目。我选择很高兴帮助我使它成为跨平台的。

因此,我编写了以下脚本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会将标志-std=c++14应用于所有C(仅glad.c实际)和C++文件。这会导致错误。

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

标签: c++buildpremake

解决方案


最后,我选择glad.c先用下面的指令编译成静态库,然后链接到我的项目中:

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

推荐阅读