Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何告诉Visual Studio包含库的.cpp文件?_C++_Visual Studio 2013 - Fatal编程技术网

C++ 如何告诉Visual Studio包含库的.cpp文件?

C++ 如何告诉Visual Studio包含库的.cpp文件?,c++,visual-studio-2013,C++,Visual Studio 2013,我正在使用lodepng生成压缩图像文件。我已经存储了.cpp和.h文件。在C:/Program files/Common files/lodepng/lodepng中,每个文件只有一个,我希望我的visual studio项目能够自动在这些文件夹中查找 我在Include目录中添加了C:/Program Files/Common Files/lodepng,所以无论我在哪里包含它,它都不会拾取头文件,这很好 然而,当我试图编译时,我得到了一个链接器错误,因为我没有告诉VS在哪里查找.cpp文件

我正在使用lodepng生成压缩图像文件。我已经存储了.cpp和.h文件。在C:/Program files/Common files/lodepng/lodepng中,每个文件只有一个,我希望我的visual studio项目能够自动在这些文件夹中查找

我在Include目录中添加了C:/Program Files/Common Files/lodepng,所以无论我在哪里包含它,它都不会拾取头文件,这很好

然而,当我试图编译时,我得到了一个链接器错误,因为我没有告诉VS在哪里查找.cpp文件,它在C:/Program Files/Common Files/lodepng/lodepng.cpp中。但我该怎么说呢

目前我使用的修复方法是简单地将loadpng.cpp拖放到项目的源文件中,但这不是一个很好的解决方案


有什么想法吗?

VC++只会在遇到如下指令时为您查找文件:

#include "lodepng.h"
虽然包含cpp文件可能不是常见的做法,但事实上,您可以包含文本文件,例如包含非常大的数据文件等


最佳做法是将cpp文件添加到项目中,不要将任何cpp文件放在标题文件夹中,除非没有其他选择,否则不要包含它们。

您必须添加.cpp文件才能与项目一起编译


右键单击解决方案资源管理器中的项目,然后选择添加->现有项并选择您的.cpp文件。请注意,文件夹中的文件必须包含在您的目录中

我认为没有一种自动方法可以从目录中提取所有.cpp文件并将其包含在源文件中。我很想在这一点上出错::通常,会提供一个预构建库,并将其作为链接器依赖项添加,在这种情况下,您不需要实现文件。一个选项是将loadpng.cpp包含在项目中的一个其他cpp文件中。但正如Chad指出的,您实际上应该只链接到loadpng库。一些用户似乎很乐意使用CMake生成.vcproj文件。如果,big-If,CMake允许您拾取目录中的所有文件,这可能是一个选项。免责声明:我自己没有使用过CMake。