Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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
Visual Studio包含来自其他项目的cpp文件 我有一个C++,h和.cp文件,它是我想包含到我的项目中的另一个项目。 我不想将这些文件复制到我的项目中,因为我希望对这些文件所做的任何更改都应用到这两个项目中_C++_Visual Studio 2010_Visual Studio 2012 - Fatal编程技术网

Visual Studio包含来自其他项目的cpp文件 我有一个C++,h和.cp文件,它是我想包含到我的项目中的另一个项目。 我不想将这些文件复制到我的项目中,因为我希望对这些文件所做的任何更改都应用到这两个项目中

Visual Studio包含来自其他项目的cpp文件 我有一个C++,h和.cp文件,它是我想包含到我的项目中的另一个项目。 我不想将这些文件复制到我的项目中,因为我希望对这些文件所做的任何更改都应用到这两个项目中,c++,visual-studio-2010,visual-studio-2012,C++,Visual Studio 2010,Visual Studio 2012,我已将文件文件夹的目录包含在 属性->VC++目录->包含目录 我还将该文件夹包括在 属性->C/C++->常规->其他包含目录 .h文件似乎工作正常。如果我将include重命名为除 包括myfile.h cpp文件获取未知的定义 当我编译的时候。错误是 致命错误C1083:无法打开源文件:'..\..\..\..\..\..\my project\myfile.cpp':没有此类文件或目录 如果我从项目中删除cpp文件。然后我得到一长串未解析的函数 错误LNK2019:未解析的外部符号公共:

我已将文件文件夹的目录包含在

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

我还将该文件夹包括在

属性->C/C++->常规->其他包含目录

.h文件似乎工作正常。如果我将include重命名为除

包括myfile.h

cpp文件获取未知的定义

当我编译的时候。错误是

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

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

错误LNK2019:未解析的外部符号公共:无符号长\uu thiscall myclass::myfunction


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

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

你不能就这样挑选文件。有两种合理的方法可以解决这个问题。1,通过代码版本控制系统(如svn/git)共享文件。2、将.cpp编译到库中并链接到该库。

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

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

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

当使用大括号时,编译器会在类似system include文件夹的地方查找文件。例如,stdlib headers文件夹和windows.h location文件夹。属性条目附加的Include目录也在那里

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

#include "mylibHeaderDir/someheader.h"
在从属项目中,设置其他包含目录后,您可以将这些包含引用为

#include <myLibHeaderDir/someheader.h>
这种方法将在将来帮助您,因为您可以在您想要的每个项目中重用该共享模块


关于如何创建和链接静态库,您可以阅读本文。visual studio的版本可能有所不同,但基本原理是相同的。

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

看起来您的相对路径有问题。你能从项目的vcxproj路径检查我的项目是否存在myfile.cpp吗?@NirMH我甚至尝试过绝对路径,但它给出了相同的问题。这个问题包括一个明确的问题:我不想将文件复制到我的项目中,因为我希望对这些文件的任何更改都应用到两个项目中。此建议的解决方案违反了。添加现有项将文件复制到项目目录中。所以这是意料之外的:asker说我不想把这些文件复制到我的项目中。