gpt4 book ai didi

c++ - 从头文件自动链接静态库

转载 作者:行者123 更新时间:2023-11-28 04:36:29 25 4
gpt4 key购买 nike

我正在编写供内部使用的库,我想自动链接静态库 (.lib) 文件,这样用户就不必知道他们需要的所有库。我们使用 Visual Studio 2015,所以我使用 pragma 搞砸了一些东西,这似乎有效,但我收到了很多警告,我认为这是由我正在做的事情引起的。

Warning LNK4221 This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

我将此代码包含在所有面向公众的接口(interface)头文件中,并将其扩展为包含必要的内部和外部库。

#ifndef GFXK_LIBS_NET_IMPORT__
#define GFXK_LIBS_NET_IMPORT__

#ifdef _DEBUG

#ifdef WIN32
#pragma comment( lib, "gfxk_net_Debug_Win32-v140.lib" )
#else
#pragma comment( lib, "gfxk_net_Debug_x64-v140.lib" )
#endif

#else

#ifdef WIN32
#pragma comment( lib, "gfxk_net_Release_Win32-v140" )
#else
#pragma comment( lib, "gfxk_net_Release_x64-v140" )
#endif

#endif /*_DEBUG*/

#endif /*GFXK_LIBS_NET_IMPORT__*/

我的问题是如何才能很好地完成这项工作,以便我可以删除这个 hack 作业。我正在寻找类似于 Boost 使用自动链接所做的事情,但我找不到如何执行此操作。我不太担心跨平台,因为此时库仅针对 Windows。

最佳答案

您可以在项目设置Configuration Properties -> Linker -> Input -> Additional dependencies 中指定.lib的路径。您可以为不同的配置和平台指定不同的设置。这将是一种更清晰的方式。

但在您将函数添加到您的 .lib 并在您的项目中使用它们后,警告将不会出现。警告只是说这个 pragma-lib 语句毫无意义,因为没有真正导入函数。

关于c++ - 从头文件自动链接静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51268225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com