1)关于加载动态库报错的问题,主要因为在windows下路径格式不对
static std::string makeLibFileName(const char *libName, const char *namePrefix, const char *nameSuffix, const char *extension)
{
bool hasDir = strchr(libName, '/') != nullptr || strchr(libName, '\\') != nullptr;
std::string dir, fileName;
splitFileName(libName, dir, fileName);
bool hasExt = strchr(fileName.c_str(), '.') != nullptr;
std::string libFileName;
if (hasExt)
libFileName = libName; // when an exact file name is given, leave it unchanged (this is mostly for loading 3rd party libs)
else if (hasDir)
//libFileName = dir + "/" + namePrefix + fileName + nameSuffix + extension;
libFileName = dir + namePrefix + fileName + nameSuffix + extension;
else
libFileName = std::string(namePrefix) + fileName + nameSuffix + extension;
return libFileName;
}
2)关于命令行加载NED错误的问题,报告找不到NETWORK
从绝对路径查找NED网络中的包名错误:
问题出在NedResourceCache.cc中,在omnet从eclipse启动都是使用相对路径,
而在 vscode中调试,使用的是绝对路径,后来调试发现是,
isPathPrefixOf函数出的问题,
主要是windows文件名不区分大小写,但是linux区分,所有这里可以不改动代码,
注意一下路径中涉及的字符串的问题。
network = cModuleType::find((inifilePackage+"."+networkname).c_str());