在 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
。这会导致错误。
我们如何区分C
和C++
并给他们不同的标志,因为premake4
没有filter
?
最后,我选择先编译glad.c
到静态库,然后link编译到我的项目:
clang -c glad.c
ar rcs libglad.a glad.o
我正在尝试使用 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
。这会导致错误。
我们如何区分C
和C++
并给他们不同的标志,因为premake4
没有filter
?
最后,我选择先编译glad.c
到静态库,然后link编译到我的项目:
clang -c glad.c
ar rcs libglad.a glad.o