我正在尝试创建一个基于Windows的VC ++ DLL(在VS 2015中),它静态链接到Casablanca CPPREST SDK。也就是说,我想要一个包含CPP REST库以及我的代码的DLL输出。
我已经提到了这个帖子,但它似乎过时了(并且链接断了):
https://katyscode.wordpress.com/2014/04/01/how-to-statically-link-the-c-rest-sdk-casablanca/
我曾尝试从GitHub下载Casablanca repo并编译产生lib文件的“cpprestsdk140.static”项目。问题是当我将它与我的项目链接时,我得到了许多未解决的外部因素。
许多人对上述网址中未解决的链接错误发表了评论。 Github上还有许多线程,人们说他们无法将简单项目与静态库链接起来。
有没有人有一套明确的步骤可以帮助解决这个问题?
答案 0 :(得分:8)
好的,我汇集了来自各个线程的一些建议,并且为了成功链接到CPP REST静态库,我们有以下一系列步骤:
现在,在你自己的项目中:
我希望这有助于某人(我确定会这样做)!
答案 1 :(得分:6)
Simple Guy的答案还有一个补充: 如果在项目中使用http_listener类,则可能需要Httpapi.lib来修复链接器错误。
我还想提出一种更简单的方法来编译静态cpprestdk库。 我已成功使用它在VS2017中构建我的项目。
享受!
答案 2 :(得分:5)
除了Simple Guy所说的,你可能还需要将bcrypt.lib添加到Linker-> Input-> Additional Dependencies,因为CPPRest中的OAuth1.obj文件依赖于其中的一些功能。