早上好,
在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位程序,反之亦然.
它应该如何工作?我确信我不是第一个遇到这个问题的人.它通常如何解决?
此致,斯特凡
来自C++背景我必须掌握Java世界及其框架的复杂性.看一下DI的弹簧框架,我发现我很难相信我必须制作每个将受DI公众影响的setter功能.这种要求是否违反了信息隐藏原则?
当然我希望spring能够设置我的类的一些私有部分,但我当然不希望每个客户端类都能够做同样的事情.
我在这里错过了什么?
天儿真好!
我有一个关于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.)
此致,斯特凡