我正在尝试从main方法上的函数传递一个对象引用。我认为问题就在这里。
在java中,我会这样做:
Object obj;
theFunction(obj);方法的定义类似于:
public void theFunction(Object obj) {
obj.useMethod();
}我在c++上做的是:
void theFunction(Object& obj){
obj.useMethod();
}我认为这样做与我所读到的关于这个问题的内容相一致是正确的。我使用的是visual studio 2013,它不会抱怨,只在我编译的时候。错误消息如下:
1>------ Build started: Project: Radiosity, Configuration: Debug Win32 ------
1> Source.cpp
1>Source.obj : error LNK2019: unresolved external symbol "public: void __thiscall Keyboard::specialKeys(class Camera &)" (?specialKeys@Keyboard@@QAEXAAVCamera@@@Z) referenced in function "void __cdecl display(void)" (?display@@YAXXZ)
1>C:\Users\PC\Documents\Visual Studio 2013\Projects\Radiosity\Debug\Radiosity.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========发布于 2013-11-02 03:17:44
你有一个连接错误。
Keyboard::specialKeys()是在您的代码中声明的。因此,这意味着在编译代码时使用的是正确的头文件。但您没有链接到正确的库。
Keyboard::specialKeys()来自哪个库?你需要它来纠正你的程序的链接。
在Visual中,右键单击项目并转到项目设置(或类似的内容),然后
配置属性->链接器->输入->附加依赖
在此字段中添加正确的库文件。对应于.lib的Keyboard::specialKeys()文件
发布于 2013-11-02 03:21:43
我会再次检查到图书馆的链接。密码在我看来没问题。当我第一次开始使用OpenGL上下文时,我很难设置它。
还请查看有关特定错误的这些页面:
http://msdn.microsoft.com/en-us/library/799kze2z.aspx
http://msdn.microsoft.com/en-us/library/z98k84c3.aspx
https://stackoverflow.com/questions/19738559
复制相似问题