0

我从来没有在我的项目中添加任何额外的包含目录,所以我不确定我是否做对了所有事情。

我在属性菜单中添加了额外的包含目录——这些目录包括我链接到的项目的头文件和 .cpp 文件。

但是当我尝试编译时出现这些错误:

Error   36  error LNK2019: unresolved external symbol "unsigned int
__cdecl lodepng_decode32_file(unsigned char * *,unsigned int *,unsigned int *,char const *)" (?lodepng_decode32_file@@YAIPAPAEPAI1PBD@Z) referenced in function
"struct rgbaImage __cdecl getRGBA(char const *)"
(?getRGBA@@YA?AUrgbaImage@@PBD@Z)   C:\Users\Alex\Documents\Visual
Studio 2010\Projects\ovltest\ovltest\main.obj   ovltest

除了那个,我还收到了 4 个链接器错误。

难道我做错了什么?

谢谢,

亚历克斯

4

3 回答 3

1

您可能需要将 .cpp 和 .h 文件显式添加到您尝试构建的项目中(我假设您在谈论 Visual Studio,对吗?)。或者,如果这些文件被构建到库中,则必须在项目属性中添加该库(链接器 -> 输入 -> 附加依赖项)。

于 2012-07-18T23:38:31.930 回答
1

include directories告诉编译器在哪里可以找到你包含的头文件。您需要分别指定库所在的目录,并且(通常)必须在第三处指定库本身(位于该位置):

在此处输入图像描述 包括目录

在此处输入图像描述 图书馆目录

在此处输入图像描述 实际库的文件名进入“附加依赖项”。

于 2012-07-18T23:41:53.117 回答
0

添加包含目录并不意味着其中包含的代码实际上会被编译。因此代码正在编译,因为您在这些目录中使用的任何内容的声明都在那里,但由于尚未生成目标代码而无法链接。

您需要将包含附加目录中的 CPP 文件的项目(或将 CPP 文件添加到现有项目)添加到您的解决方案。

于 2012-07-18T23:37:50.570 回答