C++ C++;依赖于一个库的多个库
我编写了一个库,它为我提供了基本的调试功能,可以在编译时剥离这些功能。我几乎在我所有的项目中都使用了这个库,但是,我遇到了这样一种情况:我在一个项目中创建了3个库,它们都依赖于同一个库。因此,在他们自己的子目录中,他们都独立地为这个调试库构建代码,这不是最优的。我想知道如何以跨平台的方式来缓解这个问题 项目布局:C++ C++;依赖于一个库的多个库,c++,cross-platform,libraries,C++,Cross Platform,Libraries,我编写了一个库,它为我提供了基本的调试功能,可以在编译时剥离这些功能。我几乎在我所有的项目中都使用了这个库,但是,我遇到了这样一种情况:我在一个项目中创建了3个库,它们都依赖于同一个库。因此,在他们自己的子目录中,他们都独立地为这个调试库构建代码,这不是最优的。我想知道如何以跨平台的方式来缓解这个问题 项目布局: proj \__ src | \__ foo_lib | \__ src | \__ debug_lib | \__ bar_lib
proj
\__ src
|
\__ foo_lib
| \__ src
| \__ debug_lib
|
\__ bar_lib
\__ src
\__ debug_lib
如果这是一个git存储库,也就是说,我将有2个子依赖项,其中调试库作为子依赖项。因此,除了编译这两个文件外,每当克隆存储库时,我还必须下载这两个文件
我的朋友告诉我要安装一个全局库,但我只能在我的Linux机器上,而不是在Windows上完成
编辑:评论附录
我希望在使用它进行开发时能够通过项目的源代码(即断点和源代码导航)进行调试,并且不希望预编译二进制文件以随git repos一起提供
#pragma comment(lib,"debuglib.lib");
我希望能够在开发时通过项目源代码进行调试(即断点和源代码导航),因此这并不能回答问题。此外,这将要求我在github项目中包含二进制文件,我认为这是一种不好的做法,而且不跨平台。包括.lib的调试版本和可用的源代码允许您调试库的源代码。这仍然不是跨平台的,并且不能解决在每个使用它的项目中包含4个二进制文件的问题。将其仅作为标题的想法是一个好主意,但是,它并不能解决必须将所有标题作为每个使用iti的库或项目的子依赖项下载的问题。我认为您只是希望以尽可能少的工作量获得最大的结果。你提到的所有“问题”对于大多数程序员来说都是日常问题。对不起,我帮不上忙了。你有没有办法解决Linux和MacOS的问题,而不是试图侮辱我?你认为每个操作系统应该有4个库吗?你是说我应该在git repo中分发12+个二进制文件吗?或者只是源代码和标题,然后强制使用它的人单独下载代码,以非自动方式编译和复制二进制文件。。。?编辑:他删除了侮辱,我认为
CMake
是以跨平台方式正确处理依赖关系的一个选项,但是我不完全理解这个问题。