我按照此处的步骤在Visual Studio 2015中创建一个简单的C ++静态类库,并使用该类库创建一个C ++控制台应用程序。
https://msdn.microsoft.com/en-us/library/ms235627.aspx
一切正常。
(我称我的头为ScottyMathFuncs.h)
然后,我尝试将第二个类添加到静态库,并且编译正常,但控制台应用程序看不到第二个类的新头文件。
我尝试删除原始类并添加新的第二类,这些类在静态库项目中都可以很好地运行,但是控制台应用程序将看不到任何新的头文件,并且仍然可以看到并遵守旧的头文件,而没有不再存在。这没有道理。
以下是当前解决方案无效的一些屏幕截图:
VS 2015解决方案,显示了CPlusPlusConsoleApp项目和CPlusPlusStaticLib项目,其中控制台应用程序cpp以及两个类头文件和cpp文件突出显示:
控制台应用程序项目属性,显示在附加包含目录中定义的静态路径:
这是我添加到控制台应用程序项目中的静态库的参考:
这是控制台应用程序cpp的图片,我试图在其中定义静态库中新头文件MyMathFuncs.h或MyMathFuncs2.h的包含,但是如您所见,它仅显示不再存在的旧类。
我注释掉了控制台应用程序中其余的代码,因此可以构建它。您可以从底部的构建输出中看到,即使我只是键入
不管intellisense看不到它的事实,MyMathFuncs.h,构建都会失败,无法找到标头。
这是MyMathsFuncs.h:
这是MyMathsFuncs.cpp:
这是MyMathsFuncs2.h:
这是MyMathsFuncs2.cpp:
在重新记录问题的过程中,我实际上只是找到了问题的原因并加以解决。请参阅已接受的答案。
最佳答案
在对问题进行详细记录的过程中,我找到了问题的原因!!
我最初在错误的位置创建了静态库项目,因此我将其从项目中删除,然后将其复制到另一个位置(与解决方案相同的目录),并将现有项目添加到解决方案中。问题是控制台应用程序中的引用仍然指向不再链接到解决方案的项目的原始副本,这就是为什么我的控制台应用程序不知道我对链接到解决方案的项目所做的更改的原因。
也许这会帮助别人.....
关于c++ - 为什么我的简单C++控制台应用程序在Visual Studio 2015中看不到我的简单C++静态库 header ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33258674/