Я пытаюсь использовать 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++
файлы. И это приводит к ошибке.
Как мы можем отличить C
а также C++
и дать им разные флаги, потому что premake4
не имеет filter
?
В конце концов я выбираю компиляцию glad.c
в статическую библиотеку сначала с помощью следующей инструкции, а затем связать ее с моим проектом:
clang -c glad.c
ar rcs libglad.a glad.o
Других решений пока нет …