找不到g ++库但不是gcc

时间:2014-12-13 18:50:52

标签: gcc g++ x11

我想在C++项目中使用我的学校自定义库但是库链接似乎不起作用...当我在C中创建我的程序并尝试编译它时,它可以工作。 ..

自己看:

gcc like it but not g++

我认为Mlx的X11和/或Xext库依赖性是有原因的,可能有一些

#if __cplusplus

    void    *x11_mlx_function_wanted(void);

#endif

我已经检查了mlx是否包含了一些这样的支票而我什么都没看到。

提前谢谢

修改

我在objective-c中取得了成功。

1 个答案:

答案 0 :(得分:1)

问题是C ++名称错误。如果在C11中声明一个函数,它最终会出现一个“受损”的名称,该名称会对命名空间和参数类型进行编码。这是必要的,因为在C ++中,相同的函数名称可能存在各种重载。重载是独立的功能;他们甚至不必在同一个对象库中。

在对象库本身中,函数将具有普通的C名称。但由于头文件是用C ++编译器处理的,因此声明的函数将被命名为C ++函数。

一种可能的解决方案可能是将所有包含的函数声明为C函数:

extern "C" {
  #include "/usr/X11/include/mlx.h"
}