红联Linux门户
Linux帮助

g++ 连接

发布时间:2010-09-06 20:45:30来源:红联作者:pdsxw123
现在碰到一个问题,在动态库中有一个类的定义 class M{};

在我的工程中有一个相同的类定义M,并且M中有个相同的方法F。

动态库中有个处理流程需要定义一个M的对象,然后调用方法F,但是运行结果显示的是我工程中那个类中方法F的结果。

不知道谁碰到过这个问题,怎么解决的?是不是g++在连接的时候需要加上什么参数?
文章评论

共有 5 条评论

  1. sauntor 于 2010-09-06 22:53:46发表:

    另外,对于C++程序,一般而言应当使用命名空间,所以在项目设计之初应当考虑使用C++命名空间的特性。

  2. sauntor 于 2010-09-06 22:51:34发表:

    g++和gcc一样都有个选项可以让你在编译时跳过C/C++的标准库,对于C++这个选项是--nostdinc++,通常这个选项只在编译GCC或Linux Kernel时才会用到,详细解释请参考GCC手册,祝君好运 (o):tx

  3. pdsxw123 于 2010-09-06 21:07:37发表:

    顶起!!

  4. pdsxw123 于 2010-09-06 20:58:59发表:

    比如说我的工程需要使用A.so,B.so两个动态库,可是由于A,B中都有class M的定义,并且有一个重名的
    方法,A中调用此方法的话,就是个不确定的结果。

    这个问题是在编译的加什么选项解决呢,还是直接使用命名空间解决?

  5. pdsxw123 于 2010-09-06 20:58:22发表:

    有谁碰到这个问题了?是怎么解决的呢