我决定在我的Visual Studio解决方案中添加一个额外的小项目,它只包含一个头文件(目前),该文件带有一个互斥锁,一次只允许一个线程输出到控制台。由于这是我的解决方案中所有项目都需要的功能,所以我认为最好为它添加一个单独的项目,并在其他项目中添加对它的引用。
因此,我创建了一个名为Commons的空项目,然后添加了一个头文件logger_mutex. h,并在其中编写了以下代码。
#pragma once
#ifdef _DEBUG
#include <mutex>
std::mutex loggerMutex;
#endif
我将项目类型从应用程序(.exe)改为静态库(.lib)。然后我在其他项目属性中添加了此文件的包含路径。我还添加了此Commons项目作为对所有其他项目的引用。但现在当我尝试构建解决方案时,它给出了错误LINK 1104 cannot open file../path/to/my/output/directory/Commons.lib
我调查了输出目录,发现其中没有名为Commons. lib的文件。我尝试单独重新构建Commons项目,尽管Visual Studio说它构建成功,但我没有看到Commons.lib文件出现在输出目录中。
我尝试了一个完全不同的解决方案,即使没有其他项目。它仍然没有在输出目录中生成任何.lib文件。我认为这也应该是可验证的。
那么,我在这里遗漏了什么呢?生成.lib输出文件是否需要某种最低要求?我的代码是否太小而无法生成.lib输出?我使用的是Visual Studio 2022。
1条答案
按热度按时间xghobddn1#
在你的lib项目中添加一个空的.cpp文件,就会生成一个lib。但就我而言,最好将logger_mutex. h
#include
到其他项目的pch. h中,而不是作为一个库。