Changing RTLD_NOW to RTLD_LAZY seems not work. Still the same situation.
But your suggestion did help me to identify that it has something to do with dlop(). Because ZLibrary::init() executed the following and return false:
Code:
std::sort(names.begin(), names.end());
for (std::vector<std::string>::const_iterator it = names.begin();
(it != names.end()) && (handle == 0); ++it) {
handle = dlopen(it->c_str(), RTLD_LAZY);
}
if (handle == 0) {
return false;
}