C++ 使用UHD时Visual Studio 2013中未解析的外部符号

C++ 使用UHD时Visual Studio 2013中未解析的外部符号,c++,visual-studio-2013,C++,Visual Studio 2013,我似乎无法在Visual Studio 2013中编译一个非常简单的程序。我的目标是把UHD集成到C++程序中。我下载并安装了Windows UHD软件包。由于该库也依赖于Boost,因此我还下载了相应的Boost库。之后,我在Visual Studio 2013中编写了一个快速测试程序: #include "stdafx.h" #include <iostream> #include <uhd\usrp\multi_usrp.hpp> #include <uhd\

我似乎无法在Visual Studio 2013中编译一个非常简单的程序。我的目标是把UHD集成到C++程序中。我下载并安装了Windows UHD软件包。由于该库也依赖于Boost,因此我还下载了相应的Boost库。之后,我在Visual Studio 2013中编写了一个快速测试程序:

#include "stdafx.h"
#include <iostream>
#include <uhd\usrp\multi_usrp.hpp>
#include <uhd\types\device_addr.hpp>

using namespace uhd;

int main(void)
{
   device_addr_t hint;
   device_addrs_t dev_addrs = device::find(hint);
   system("pause");
   return 0;
}
我以前在其他程序中遇到过这些错误,但我能够相对容易地解决它们;要么我拼错了一个重要的include,要么模板类出现问题。然而,在这种情况下,我似乎无法解决这个问题

如有任何建设性意见,将不胜感激


注意:除了定义库目录路径外,我还显式添加了UHD库,并且收到了相同的错误。

我让您的示例正常工作。以下是我使用的软件版本,因为您在描述中没有提到太多:

Microsoft Visual Studio 2013 VS2013 vcredist_x86的VC++可再发行包 UHD 003.007.002,VS2013,Win32 Boost 1.56,lib32-msvc-12.0二进制软件包 以下是您需要在VS2013应用程序中设置的项目配置属性:

C/C++->General->Additional Include目录

C:\local\boost\u 1\u 56\u 0 C:\Program Files x86\uhd\include 链接器->常规->其他库目录

C:\local\boost\u 1\u 56\u 0\lib32-msvc-12.0 C:\ProgramFilesx86\uhd\lib 链接器->输入->其他依赖项

uhd.lib
我想最后一步是什么绊倒了你,祝你好运

我完全按照大卫·格林所说的去做,结果也犯了同样的错误。最终我发现我下载了64位UHD,但我使用的是32位编译器Visual Studio 2013 Express。下载32位版本的UHD for Visual Studio 2013解决了这个问题。对于存在此问题的任何其他人,请仔细检查编译器是否与您安装的UHD版本匹配。

如果您使用了来自所提供链接的预构建windows库,则它们会明确声明为使用Microsoft Visual Studio 2010编译。在这种情况下,您可能会看到Visual Studio 2012/2013中引入的中断更改的效果,有关更多信息,请参见。
Error   3   error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class std::vector<class uhd::device_addr_t,class std::allocator<class uhd::device_addr_t> > __cdecl uhd::device::find(class uhd::device_addr_t const &)" (__imp_?find@device@uhd@@SA?AV?$vector@Vdevice_addr_t@uhd@@V?$allocator@Vdevice_addr_t@uhd@@@std@@@std@@ABVdevice_addr_t@2@@Z) referenced in function _main    C:\Users\...\Documents\Visual Studio 2013\Projects\uhd_test\uhd_test\uhd_test.obj   uhd_test

Error   2   error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall uhd::device_addr_t::~device_addr_t(void)" (__imp_??1device_addr_t@uhd@@QAE@XZ) referenced in function "public: void * __thiscall uhd::device_addr_t::`scalar deleting destructor'(unsigned int)" (??_Gdevice_addr_t@uhd@@QAEPAXI@Z) C:\Users\...\Documents\Visual Studio 2013\Projects\uhd_test\uhd_test\uhd_test.obj   uhd_test

Error   1   error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall uhd::device_addr_t::device_addr_t(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_??0device_addr_t@uhd@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function _main   C:\Users\...\Documents\Visual Studio 2013\Projects\uhd_test\uhd_test\uhd_test.obj   uhd_test


Error   4   error LNK1120: 3 unresolved externals   C:\Users\...\Documents\Visual Studio 2013\Projects\uhd_test\Debug\uhd_test.exe  uhd_test