Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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++的新手(从Python切换)。我的解决方案中有两个项目(Visual Studio 2019): 一个静态库(我们称之为“myLib”),它依赖于boost库 引用myLib的应用程序(我们称之为“myApp”)_Boost_Visual Studio 2019 - Fatal编程技术网

在由多个项目组成的解决方案中双重链接到附加库? 我是C++的新手(从Python切换)。我的解决方案中有两个项目(Visual Studio 2019): 一个静态库(我们称之为“myLib”),它依赖于boost库 引用myLib的应用程序(我们称之为“myApp”)

在由多个项目组成的解决方案中双重链接到附加库? 我是C++的新手(从Python切换)。我的解决方案中有两个项目(Visual Studio 2019): 一个静态库(我们称之为“myLib”),它依赖于boost库 引用myLib的应用程序(我们称之为“myApp”),boost,visual-studio-2019,Boost,Visual Studio 2019,当我构建myLib时,一切都进展顺利。但是,当我尝试构建myApp时,出现以下错误: Blockquote严重性代码描述项目文件行抑制状态 错误LNK1104无法打开文件“libboost\u date\u time-vc142-mt-gd-x64-1\u 72.lib”应用程序C:\Users\[myName]\Documents\git\u projects\[projectName]\app\LINK 1 我知道这是关于linker的,它找不到boost库的引用,所以当我从myApp再次链

当我构建myLib时,一切都进展顺利。但是,当我尝试构建myApp时,出现以下错误:

Blockquote严重性代码描述项目文件行抑制状态 错误LNK1104无法打开文件“libboost\u date\u time-vc142-mt-gd-x64-1\u 72.lib”应用程序C:\Users\[myName]\Documents\git\u projects\[projectName]\app\LINK 1

我知道这是关于linker的,它找不到boost库的引用,所以当我从myApp再次链接boost库时,它构建时没有错误。 不过,我的问题是: 为什么我必须引用boost两次?1.在myLib中,我需要引用boost;2.在myApp中,我还必须链接到boost,尽管myApp已经引用了myLib。 我想,如果我在myLib中引用boost,然后从myApp中引用myLib,就有可能构建所有内容而不出错。
有谁能向我解释一下,myApp是否可能只引用myLib而不链接到boost?

当您创建一个库时,其他库都没有链接到。这是出于设计考虑,如果要将一个库链接到另一个库,则必须使用特殊工具。当您构建库时,删除boost库的依赖项,它仍然可以很好地编译。使用lib作为标记集,并且没有boost lib依赖项

#include <boost/date_time.hpp>
void test_call() {
    boost::gregorian::date the_date;
}

理由是,如果lib包含在其他lib中,那么会有大量代码膨胀。这可以防止不必要的代码重复。

当您创建库时,其他库不会链接到其中。这是出于设计考虑,如果要将一个库链接到另一个库,则必须使用特殊工具。当您构建库时,删除boost库的依赖项,它仍然可以很好地编译。使用lib作为标记集,并且没有boost lib依赖项

#include <boost/date_time.hpp>
void test_call() {
    boost::gregorian::date the_date;
}

理由是,如果lib包含在其他lib中,那么会有大量代码膨胀。这可以防止不必要的代码重复。

您是否在
myApp
中包含日期时间头?如果是这样,那么这是意料之中的。不,我没有。相反,我包括:asio、bind、foreach、property_树、shared_ptr Headers你让我好奇。我创建了一个测试,事实上,最热门的项目是寻找boost库。但我知道它是静态链接的,我的boost libs(dll)不在我的路径中。你是否在你的
myApp
中包含日期时间头?如果是这样,那么这是意料之中的。不,我没有。相反,我包括:asio、bind、foreach、property_树、shared_ptr Headers你让我好奇。我创建了一个测试,事实上,最热门的项目是寻找boost库。但我知道它是静态链接的,我的boostlibs(dll)不在我的路径中。