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

时间:2018-08-05 11:21:24

标签: c++ build premake

我正在尝试使用premake4来编译C++ OpenGL项目。我选择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将对所有-std=c++14(实际上仅C)和glad.c文件都施加标志C++。这会导致错误。

由于C没有C++,我们如何区分premake4filter并赋予它们不同的标志?

1 个答案:

答案 0 :(得分:0)

最后,我选择首先使用以下指令将glad.c编译为静态库,然后将其链接到我的项目:

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