如何 link Google 使用 premake5 进行测试
How to link Google Test with premake5
我想 link Google 测试 (https://github.com/google/googletest) 我的项目。我在以下目录中添加了 gtest 作为子模块:
%{wks.location}/sengine/vendor/gtest
我在 gtest 目录中有以下 premake5 脚本:
project "gtest"
kind "StaticLib"
language "C++"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
files
{
"googletest/include/gtest/**.h",
"googletest/src/gtest-all.cc",
}
filter "system:windows"
systemversion "latest"
cppdialect "C++17"
staticruntime "On"
filter "configurations:Debug"
runtime "Debug"
symbols "on"
filter "configurations:Release"
runtime "Release"
optimize "on"
这样的错误揭晓:
D:\dev\sengine\sengine\vendor\gtest\googletest\src\gtest-all.cc(38,10): fatal error C1083: Cannot open include file: 'gtest/gtest.h': No such file or directory
我真的不知道应该如何更改我的脚本,这样我就可以像这样包含 gtest.h:
#include <gtest/gtest.h>
googletest 期望目录 googletest/include
dir 是根包含目录。您可以推断出这一点,因为使用了 <>
(与 ""
相比,用于项目中的相对路径)并且路径是相对于此目录在 gtest-all.cc
.
中给出的
我更多地使用 CMake,没有使用 premake5 的经验,但通常您需要手动指定 include 目录根目录。
显然premake5有类似的机制:Include directories
我想 link Google 测试 (https://github.com/google/googletest) 我的项目。我在以下目录中添加了 gtest 作为子模块:
%{wks.location}/sengine/vendor/gtest
我在 gtest 目录中有以下 premake5 脚本:
project "gtest"
kind "StaticLib"
language "C++"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
files
{
"googletest/include/gtest/**.h",
"googletest/src/gtest-all.cc",
}
filter "system:windows"
systemversion "latest"
cppdialect "C++17"
staticruntime "On"
filter "configurations:Debug"
runtime "Debug"
symbols "on"
filter "configurations:Release"
runtime "Release"
optimize "on"
这样的错误揭晓:
D:\dev\sengine\sengine\vendor\gtest\googletest\src\gtest-all.cc(38,10): fatal error C1083: Cannot open include file: 'gtest/gtest.h': No such file or directory
我真的不知道应该如何更改我的脚本,这样我就可以像这样包含 gtest.h:
#include <gtest/gtest.h>
googletest 期望目录 googletest/include
dir 是根包含目录。您可以推断出这一点,因为使用了 <>
(与 ""
相比,用于项目中的相对路径)并且路径是相对于此目录在 gtest-all.cc
.
我更多地使用 CMake,没有使用 premake5 的经验,但通常您需要手动指定 include 目录根目录。
显然premake5有类似的机制:Include directories