我有一个来自另一个项目的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文件都包含在我的第二个项目中?
答案 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)
尝试将它们拖入您的解决方案? 您可以在解决方案中创建一个新文件夹,然后将它们全部拖到此文件夹中!