我正在尝试迁移到Developer Studio 12.5并启用C ++ 11选项。我的软件使用/ usr / sfw中的Oracle提供的库链接openssl。这似乎取决于比现在用于C ++ 11 STL的libgcc_s.so更旧。所以我得到以下内容:
using System.Reflection;
...
private void someMethod(string myTypeString, List<Values> typeList)
{
PropertyInfo pi = typeof(Values)
.GetProperty(myTypeString,
System.Reflection.BindingFlags.Instance |
System.Reflection.BindingFlags.NonPublic | // private/internal/protected
System.Reflection.BindingFlags.Public);
// property exists, can be read and returns DateTime
if (null == pi)
return; // or throw exception
else if (!pi.CanRead)
return; // or throw exception
else if (pi.PropertyType != typeof(DateTime))
return; // or throw exception
foreach(var type in typeList
.Where(x => (DateTime) (pi.GetValue(x, null)) > DateTime.Now))
{
//do my loop
}
}
两个libgcc_s.so实例是否有某种方法可以在一个二进制文件中共存,其中libcrypto引用一个,从STL引用到另一个?查看Oracle链接器和库文档显示了一些有前途的选项,例如-B group,但这可能仅适用于dlopen。
我意识到我可以重新编译openssl(或者libressl)但是使用操作系统中的那个会更好,我的同事认为Sun的构建在SPARC上使用了硬件加密功能。