“未解决的外部符号”错误

问题描述

| 我正在使用一个示例程序,该程序应该允许使用称为OSC的协议控制MIDI设备。 我所做的是从以下位置下载SDK:http://mac.softpedia.com/get/Development/Libraries/oscpack.shtml \'examples \'文件夹包含一个名为\'SimpleSend.cpp \'的文件。的代码如下:
#include \"osc/OscOutboundPacketStream.h\"
#include \"ip/UdpSocket.h\"


#define ADDRESS \"127.0.0.1\"
#define PORT 7000

#define OUTPUT_BUFFER_SIZE 1024

int main(int argc,char* argv[])
{
    UdpTransmitSocket transmitSocket( IpEndpointName( ADDRESS,PORT ) );

    char buffer[OUTPUT_BUFFER_SIZE];
    osc::OutboundPacketStream p( buffer,OUTPUT_BUFFER_SIZE );

    p << osc::BeginBundleImmediate
        << osc::BeginMessage( \"/test1\" ) 
        << true << 23 << (float)3.1415 << \"hello\" << osc::EndMessage
        << osc::BeginMessage( \"/test2\" ) 
        << true << 24 << (float)10.8 << \"world\" << osc::EndMessage
        << osc::EndBundle;

    transmitSocket.Send( p.Data(),p.Size() );
}
我已经打开Visual C ++,并创建了一个名为\'osctemp \'的新(CLR控制台应用程序)项目。我从\'SimpleSend.cpp \'文件复制代码,并将其粘贴到为我的项目创建的主cpp文件中,并保留默认项目文件中的以下代码行:
#include \"stdafx.h\"

using namespace System;
然后,我导航到stdafx.h头文件,并注意到该文件的底部包含以下行:
// TODO: reference additional headers your program requires here
...所以我乖乖地将include和定义从我的主cpp文件移到了这里。 我还注意到,我需要将包含项添加到我的项目中,因此在Windows资源管理器中,我将文件夹\'osc \'和\'ip \'复制到我的项目文件夹中。 运行时,我收到以下错误: 1> ------开始构建:项目:osctemp,配置:调试Win32 ------ 1> stdafx.cpp 1> AssemblyInfo.cpp 1> osctemp.cpp 1>正在生成代码... 1> .NETFramework,Version = v4.0.AssemblyAttributes.cpp 1> osctemp.obj:错误LNK2028:未解析的令牌(0A00000A)\“ public:char const * __thiscall osc :: OutboundPacketStream :: Data(void)const \”(?Data @ OutboundPacketStream @ osc @@ $$ FQBEPBDXZ)函数\“ int __cdecl main(int,char * * const)\”(?main @@ $$ HYAHHQAPAD @ Z) 1> osctemp.obj:错误LNK2028:未解析的令牌(0A00000B)\“ public:unsigned int __thiscall osc :: OutboundPacketStream :: Size(void)const \”(?Size @ OutboundPacketStream @ osc @@ $$ FQBEIXZ) \“ int __cdecl main(int,char * * const)\”(?main @@ $$ HYAHHQAPAD @ Z) 1> osctemp.obj:错误LNK2028:未解析的令牌(0A00000C)\“ public:void __thiscall UdpSocket :: Send(char const *,int)\”(?Send @ UdpSocket @@ $$ FQAEXPBDH @ Z) “ int __cdecl main(int,char * * const)\”(?main @@ $$ HYAHHQAPAD @ Z) ...(还有更多类似的东西)... 1> D:\\ Temp \\ OSCTEMP \\ osctemp \\ Debug \\ osctemp.exe:致命错误LNK1120:40个未解决的外部组件 我错过了什么?     

解决方法

        从问题描述中,我找不到有关如何链接到SDK库的任何信息。你这样做了吗? 要链接到SDK库,您需要一个或多个.lib文件。即使将SDK作为DLL分发,您也需要一个lib文件来进行构建时链接。您应该通读SDK文档,并查找有关链接依赖关系的指南。 如果您似乎在SDK发行版中找不到任何lib文件,则很可能是您需要先构建SDK来生成一个库,然后再链接到它。或者,如果SDK附带了一个现成的VS项目,则可以将其添加到解决方案中,并设置自己的项目以依赖它(即VS会执行查找输出库并与之链接的工作)。 同样,如果SDK具有任何下降的标准,那么如果有必要,应该有一些有关自行构建SDK的文档。 祝好运。     ,        您或者没有提取正确的库,或者您的原型没有根据库中的实际内容正确定义库函数。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...