Visual Studio包含来自其他项目的cpp文件

时间:2014-07-28 09:13:10

标签: c++ visual-studio-2010 visual-studio-2012

我有一个来自另一个项目的C ++ .h和.cpp文件,我希望将其包含到我的项目中。 我不想将文件复制到我的项目中,因为我希望将这些文件的任何更改应用于这两个项目。

我在

中包含了文件夹的目录
  

属性 - > VC ++目录 - >包含目录

我还在

中包含了该文件夹
  

属性 - > C / C ++ - >一般 - >其他包含目录

.h文件似乎有效。如果我将include重命名为

以外的任何内容
  

#include“myfile.h”

cpp文件的定义未知。

编译时错误是

  

致命错误C1083:无法打开源文件:'.. \ .. \ .. \ .. \ .. \ .. \ my project \ myfile.cpp':没有这样的文件或目录

如果我从项目中删除cpp文件。然后我得到一长串未解决的函数。

  

错误LNK2019:未解析的外部符号“public:unsigned long __thiscall myclass :: myfunction”

如何将.h和.cpp文件都包含在我的第二个项目中?

4 个答案:

答案 0 :(得分:2)

对于cpp文件,您只需在项目上单击鼠标右键,选择“添加” - >现有项目。 然后,当构建启动时,他们应该与其他人一起编译。

标题稍微复杂一些。有两种方法可以使用#include指令: 与< >和“”括号

当使用“”大括号时,编译器将路径视为相对(如果不是绝对使用)到cpp文件的位置

何时< >使用大括号,编译器查找类似系统包含文件夹的文件。例如 - stdlib headers文件夹和windows.h位置文件夹。属性条目其他包含目录也在那里。

我建议您更改项目结构并从两个项目中提取共享功能,以将其编译为静态库。将共享标头放在库项目中的某个子文件夹中,然后将其引用为

#include "mylibHeaderDir/someheader.h"

在依赖项目中,在设置其他包含目录之后,您可以将theese包含为

#include <myLibHeaderDir/someheader.h>

这种方法将来会对您有所帮助,因为您可以在所需的每个项目中重用该共享模块。

关于如何创建和链接静态库,您可以阅读本文http://msdn.microsoft.com/en-us/library/vstudio/ms235627(v=vs.110).aspx Visual Studio的版本可能有所不同,但基础是相同的。

答案 1 :(得分:0)

你不能只选择那样的文件。有两种合理的方法可以解决它。 1,通过代码版本控制系统(例如svn / git)共享文件。 2,将.cpp编译成一个库并链接到该库。

答案 2 :(得分:0)

如果cpp可以被多个项目使用,那么它必须意味着代码是常见的。这意味着您应该将该代码自身编译到库中,然后共享该库。如果需要两个这样的库一起工作,将相同的cpp编译到多个库中可能会导致冲突。

答案 3 :(得分:-1)

尝试将它们拖入您的解决方案? 您可以在解决方案中创建一个新文件夹,然后将它们全部拖到此文件夹中!