首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在premake5和VS2019中使用googletest

如何在premake5和VS2019中使用googletest
EN

Stack Overflow用户
提问于 2021-01-03 04:23:07
回答 1查看 173关注 0票数 1

我一直在尝试将googletest集成到我的解决方案中,但我要么得到了令人讨厌的链接器错误,要么根本无法添加它。

googletest被添加为一个子模块:git子模块添加'https://github.com/google/googletest.git

我一直在尝试这样配置premake5:

代码语言:javascript
运行
复制
...
project "libtest"
    location "libtest"
    kind "ConsoleApp"
    language "C++"

    targetdir ("bin/" .. outputdir .. "/%{prj.name}")
    objdir ("bin-int/" .. outputdir .. "/%{prj.name}")

    files
    {
        "%{prj.name}/src/**.h",
        "%{prj.name}/src/**.cpp",
        "libtest/vendor/googletest/googletest/**.h",
        "libtest/vendor/googletest/googletest/**.hpp",
        "libtest/vendor/googletest/googletest/src/gtest-all.cc"
    }

    includedirs
    {
        "mylib", // DLL
        "libtest/vendor/googletest/googletest/include/gtest",
        "libtest/vendor/googletest/googletest/include",
        "libtest/vendor/googletest/googletest"
    }
 ...

我得到了LNK2019 unresolved external symbol main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) libtest C:\dev\mylib\libtest\LIBCMTD.lib(exe_main.obj) 1

EN

Stack Overflow用户

回答已采纳

发布于 2021-01-03 07:10:12

最终设法解决了这个问题:)

添加一些额外的文件:

代码语言:javascript
运行
复制
int main(int argc, char** argv)
{
    testing::InitGoogleTest(&argc, argv);

    return RUN_ALL_TESTS();
}

修复链接问题,清理:

代码语言:javascript
运行
复制
"libtest/vendor/googletest/googletest/include/gtest",
"libtest/vendor/googletest/googletest/include",
"libtest/vendor/googletest/googletest"

到这个

代码语言:javascript
运行
复制
"libtest/vendor/googletest/googletest/include",
"libtest/vendor/googletest/googletest/"

就足够了。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65543700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档