Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.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++;带有调试文件的项目 我有一个C++的VisualStudio解决方案,包含27个已知的构建顺序和其他所有的项目,我可以成功地构建整个解决方案,并且所有的工作都很好,正如你知道的,在构建每个项目之后,一些文件将在“调试”(或“发布”)文件夹中生成,并且我为每个项目访问它们,这个解决方案的26个项目不需要更改,我只想更改一个项目,所以我想知道是否可以使用所有其他26个项目的生成调试文件,在Visual Studio或任何其他IDE中再次构建我的解决方案? 非常感谢_C++_Visual Studio 2012 - Fatal编程技术网

构建一个C++;带有调试文件的项目 我有一个C++的VisualStudio解决方案,包含27个已知的构建顺序和其他所有的项目,我可以成功地构建整个解决方案,并且所有的工作都很好,正如你知道的,在构建每个项目之后,一些文件将在“调试”(或“发布”)文件夹中生成,并且我为每个项目访问它们,这个解决方案的26个项目不需要更改,我只想更改一个项目,所以我想知道是否可以使用所有其他26个项目的生成调试文件,在Visual Studio或任何其他IDE中再次构建我的解决方案? 非常感谢

构建一个C++;带有调试文件的项目 我有一个C++的VisualStudio解决方案,包含27个已知的构建顺序和其他所有的项目,我可以成功地构建整个解决方案,并且所有的工作都很好,正如你知道的,在构建每个项目之后,一些文件将在“调试”(或“发布”)文件夹中生成,并且我为每个项目访问它们,这个解决方案的26个项目不需要更改,我只想更改一个项目,所以我想知道是否可以使用所有其他26个项目的生成调试文件,在Visual Studio或任何其他IDE中再次构建我的解决方案? 非常感谢,c++,visual-studio-2012,C++,Visual Studio 2012,理论上,VisualStudio会发现(在解决方案中)发生了什么变化,并且只说build应该只构建发生了变化的(及其依赖项)。 如果将一个编译器中的库和EXE与另一个编译器中的库和EXE一起使用,请注意——您几乎肯定需要使用相同版本的Visual Studio,因为例如,stl的实现会在不同版本之间发生变化。 此外,如果使用不同的编译器,几乎肯定会出现可怕的错误 如果您使用另一个IDE并将其指向同一个编译器,那么一切都应该正常。 编辑 如果“另一个IDE”是指同一IDE的另一个实例,也就是

理论上,VisualStudio会发现(在解决方案中)发生了什么变化,并且只说
build
应该只构建发生了变化的(及其依赖项)。
如果将一个编译器中的库和EXE与另一个编译器中的库和EXE一起使用,请注意——您几乎肯定需要使用相同版本的Visual Studio,因为例如,stl的实现会在不同版本之间发生变化。 此外,如果使用不同的编译器,几乎肯定会出现可怕的错误

如果您使用另一个IDE并将其指向同一个编译器,那么一切都应该正常。

编辑

如果“另一个IDE”是指同一IDE的另一个实例,也就是说,您希望打开不同的解决方案,但将其用作“库”,这很好。您不需要
.obj
文件-它们是构建过程的一部分。这是您需要的最终
.lib
.dll
文件,如果您需要调试符号,还需要
.pdb
文件

visual Studio的“调试文件”是*.pdb文件,是专有的MS格式,因此不能在其他IDE中使用:

VS'*.obj'的中间文件是为每个翻译单元生成的,但转换到另一个编译器并不容易:

如果您已经拥有VS解决方案,您可以对要编辑的项目进行更改,并且VS将确保在生成解决方案时,需要更改的每个项目都将重新编译和链接。 如果您想腾出时间,可以告诉VS编译您正在处理的项目,而不是整个解决方案。如果对你有用的话,你可以和VS呆在一起


添加对另一个构建系统或IDE的支持应该由熟悉这些项目的有经验的开发人员来完成。

问题到底是什么,我都知道,您想知道是否可以重用编译的lib文件或?Visual Studio足够聪明,可以只生成需要生成的内容-如果您要更改多个项目包含的共享头,那么每次都会看到它们都被重新生成-否则它应该只生成包含修改过的源文件的项目确定我要使用同一个编译器(Visual C++),例如,您知道我想在另一个IDE中有一个项目,并添加一个项目(需要更改的项目)作为源项目,不知怎的(这是我的问题,我不知道怎么做?)将调试文件(我描述的26个其他项目)附加到它,并与包含27个项目的庞大解决方案的VS具有相同的结果。您是否真的试图构建某种库以用于其他项目(而不是其他IDE)?是的,实际上,在另一个IDE中执行此操作并不重要,但我需要将.pdb和.obj文件作为外部依赖或其他我不知道的内容引入到另一个解决方案中@jasper8000-见编辑。你的问题没有说清楚。你问的是如何编写一个库,以及如何部署它,我想。哦,糟糕,我没有注意到“编辑”,这正是我想要做的,请你再解释一下好吗?非常感谢,如果问题不清楚,很抱歉,实际上我还不熟悉表达式。非常感谢你的回答,当然我想使用相同的编译器“Visual C++”,所以我不担心你提到的转换,我有VS解决方案,我知道VS并没有重建所有的解决方案,但我必须使用我的项目,正如我所说的,是否有任何方法将这些调试文件(PDB和OBJ)文件作为外部依赖项或什么引入?我想您希望链接到这些项目。这可以使用项目属性来完成。如果幸运的话,你可以生成一个新的解决方案,并且只导入你想要更改的项目。如果这不起作用,您必须设置库/包含目录的路径名以及要在项目配置中链接的*.lib文件的名称。请参阅:非常感谢,它对我起了很大作用。我使用了库文件和dll文件,结果与大型解决方案相同。