小编str*_*ppi的帖子

共享库如何在混合64位/ 32位系统中工作?

早上好,

在64位RedHat盒子上,我们必须编译并运行一个32位应用程序.同时我设法编译了所需的gcc版本(4.0.3)和所有需要的32位运行时库,并将LD_LIBRARY_PATH设置为指向32位版本,但现在在剩余的构建过程中,需要执行一个小的java程序,作为64位程序安装在/ usr/bin中,现在首先找到32位版本的libgcc_s.so.

通常,如果我将LD_LIBRARY_PATH设置为32位版本,我会破坏64位程序,反之亦然.

它应该如何工作?我确信我不是第一个遇到这个问题的人.它通常如何解决?

此致,斯特凡

linux 64-bit shared-libraries

16
推荐指数
2
解决办法
2万
查看次数

Spring的依赖注入是否会破坏信息隐藏?

来自C++背景我必须掌握Java世界及其框架的复杂性.看一下DI的弹簧框架,我发现我很难相信我必须制作每个将受DI公众影响的setter功能.这种要求是否违反了信息隐藏原则?

当然我希望spring能够设置我的类的一些私有部分,但我当然不希望每个客户端类都能够做同样的事情.

我在这里错过了什么?

java spring encapsulation dependency-injection

14
推荐指数
3
解决办法
1798
查看次数

g ++ 4.5找不到好友功能

天儿真好!

我有一个关于friend在C++中使用的问题.考虑以下代码:

#include <ostream>

struct F {
};

struct N {
  friend std::ostream& operator<< (std::ostream&, const N&);
  friend std::ostream& operator<< (std::ostream&, const F&);    
};

void foo(std::ostream &out) {
  F bar;
  out << bar;
}
Run Code Online (Sandbox Code Playgroud)

我的理解总是,这与函数可以访问类的私有部分的附加属性friend类似.在这个假设下,代码应该编译,因为有一个需要a 和a(const).staticfriendoperator<<ostream&F&

似乎g ++ 4.0对此有共同的看法,因为它接受了这个代码.然而,更新的g ++ 4.5(.2)拒绝带有消息的代码:

ns.cc: In function 'void foo(std::ostream&)':
ns.cc:14:10: error: no match for 'operator<<' in 'out << bar'
Run Code Online (Sandbox Code Playgroud)

是g ++ 4.5错了还是我(和g ++ 4.0)错了?

(将朋友声明移入F课堂的解决方案没有帮助,因为operator<<需要访问私人部分N.)

此致,斯特凡

c++ g++ friend

3
推荐指数
1
解决办法
1147
查看次数