我已经开始使用lib文件,并希望正确地使用core\u REGISTER\u DYNAMIC\u INIT。我不知道我是否
需要
但是我注意到一个问题,我的一个仪式化类型在一个单独的DLL中没有被正确地提取,我想这可能会有所帮助。
在accountActions.h中,我在文件末尾有以下内容:
CEREAL_FORCE_DYNAMIC_INIT(mv_clientactions);
在accountActions.cpp中,我在文件顶部有以下内容:
#include "clientActions.h"
#include "cereal/cereal.hpp"
#include "cereal/types/base_class.hpp"
#include "cereal/types/polymorphic.hpp"
#include "cereal/archives/adapters.hpp"
#include "cereal/archives/portable_binary.hpp"
#include "cereal/archives/json.hpp"
CEREAL_REGISTER_TYPE(CreatePlayer);
CEREAL_REGISTER_TYPE(LoginRequest);
CEREAL_REGISTER_TYPE(FindMatchRequest);
CEREAL_REGISTER_TYPE(ExpectedPlayersNoted);
CEREAL_REGISTER_DYNAMIC_INIT(mv_accountactions);
假设mv\u accountactions只是一个完全虚构的字符串。我没有任何库或dll命名,但我想它是用来链接这两个单位在一起?文件是稀疏的,我可能是用这个不正确。
1>c:\git\bindstone\source\game\networklayer\accountactions.cpp(13):错误C2084:函数“void::detail::dynamic\u init\u dummy\u mv\u accountactions(void)”已经有一个主体
1>c:\git\bindstone\source\game\networklayer\accountactions.h(127):注:请参阅“dynamic\u init\u dummy\u mv\u accountactions”的先前定义
如有建议,将不胜感激。
https://github.com/USCiLab/cereal/issues/523