gpt4 book ai didi

visual-c++ - 静态链接Casablanca/CPPREST SDK

转载 作者:行者123 更新时间:2023-12-04 09:30:20 25 4
gpt4 key购买 nike

我正在尝试创建一个静态链接到Casablanca CPPREST SDK的基于Windows的VC++ DLL(在VS 2015中)。也就是说,我想要一个包含CPP REST库和我的代码的DLL输出。

我已经提到了这个线程,但是它看起来有些过时了(链接断开了):

https://katyscode.wordpress.com/2014/04/01/how-to-statically-link-the-c-rest-sdk-casablanca/

我试图从GitHub下载Casablanca存储库,并编译产生一个lib文件的“cpprestsdk140.static”项目。问题是,将其与我的项目链接时,我遇到了许多无法解决的外部问题。

许多人对上述URL中 Unresolved 链接错误发表了评论。 Github上还有许多线程,人们说他们无法将简单项目与静态库链接。

有人有明确的步骤集可以帮助解决此问题吗?

最佳答案

好的,我汇集了来自各个线程的大量建议,并采用以下步骤来成功链接到CPP REST静态库:

  • https://github.com/Microsoft/cpprestsdk下载Casablanca SDK。 (通过GIT Clone或Zip)。
  • 打开VS解决方案,然后右键单击cpprestsdk140.static的属性。
  • 在C++->预处理程序定义中,添加 CPPREST_EXCLUDE_COMPRESSION 。完整列表如下所示:_NO_ASYNCRTIMP; _ASYNCRT_EXPORT; _PPLX_EXPORT; WIN32; _MBCS; _USRDLL; CPPREST_EXCLUDE_COMPRESSION;%(PreprocessorDefinitions)
  • 在库管理器->常规->其他依赖项中,添加 crypt32.lib; winhttp.lib; (请参阅https://github.com/Microsoft/cpprestsdk/issues/344)
  • 按OK,然后构建cpprestsdk140.static项目。您将在Binaries目录中最终得到 libcpprest140d_2_9.lib (用于Debug构建)。

  • 现在,在您自己的项目中:
  • 如果您以前使用过CPPREST的Nuget版本,请首先确保您在Nuget软件包管理器中删除了所有引用。
  • 右键单击项目属性,然后转到C++->其他包含目录,然后输入CPPREST SDK包含文件的路径。它们当前位于cpprestsdk\Release\include中。
  • 现在转到C++->预处理程序定义,添加 _NO_ASYNCRTIMP (请参阅https://github.com/Microsoft/cpprestsdk/issues/124)。
  • 转到链接器->输入,然后添加 libcpprest140d_2_9.lib (以及路径名,如果适用)。对于发行版,似乎还需要添加 crypt32.lib; winhttp.lib
  • 建立您的项目,希望一切都很好;)

  • 我希望这可以对某人有所帮助(我敢肯定会有所帮助)!

    关于visual-c++ - 静态链接Casablanca/CPPREST SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44905708/

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