我做了一个SO的库有调用MYSQL的函数。但是奇怪的是。只要主程序调用到SO库里,函数有MYSQL的库函数就出错。错误: undefined symbol: mysql_init。
如果,我把SO的源代码直接编译到主程序去,调用又没问题。
主程序是用函数加载SO库的。

解决方案 »

  1.   

    应该是你的库无法调用MYSQL自带的DLL。而“把SO的源代码直接编译到主程序去”,是你的主程序在调用DLL,所以运行就没有问题。
      

  2.   

    我知道是SO库调用MYSQL的库出问题了。但不知道要怎么解决。那位解决过这个问题么。谢谢
      

  3.   

    我们的方式是,创建多个 数据库链接。
    给每个数据库分别创建链接。
    就OK了。(我们也是实现多个数据库同时调用)另外,如果在一条sql上或者存储过程里面想彼此调用的话,在表明前要加 库名,组成  “库名.表明”  的形式。
      

  4.   

    如果你要用so的话就要把mysql的库也要链接进去因为你把so链接进程序的时候,so需要mysql库,所以同时会把mysql库中需要的函数也链接到程序中去
    而你用so的时候, 程序中并没有链接so中的函数,也没有链接mysql的函数,所以用行是加载了so,但是去无法找到mysql中的函数
    建议用so的同时把mysql的库也用so的,应该可以解决你说的问题