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

Joh*_*ohn 2 c++ visual-studio-2010 visual-studio-2012

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

\n

我已将文件文件夹的目录包含在Properties \xe2\x86\x92 VC++ Directorys \xe2\x86\x92 Include Directory 中

\n

我还将该文件夹包含在Properties \xe2\x86\x92 C/C++ \xe2\x86\x92 General \xe2\x86\x92 Extra Include Directory 中

\n

.h文件似乎可以工作。如果我将 include 重命名为 以外的任何名称#include "myfile.h",则 cpp 文件将获得未知的定义。

\n

当我编译时。错误是:

\n
fatal error C1083: Cannot open source file: '..\\..\\..\\..\\..\\..\\my project\\myfile.cpp': No such file or directory\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
error LNK2019: unresolved external symbol "public: unsigned long __thiscall myclass::myfunction"\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

Vas*_*yev 5

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

标题稍微复杂一些。有两种使用 #include 指令的方法:使用 < > 和 " " 大括号

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

当使用 < > 大括号时,编译器会在系统包含文件夹之类的文件夹中查找文件。例如 - stdlib 标头文件夹和 windows.h 位置文件夹。属性条目附加包含目录也在那里。

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

#include "mylibHeaderDir/someheader.h"
Run Code Online (Sandbox Code Playgroud)

在依赖项目中,设置附加包含目录后,您可以将这些包含引用为

#include <myLibHeaderDir/someheader.h>
Run Code Online (Sandbox Code Playgroud)

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

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