再AIX上开发动态库的问题
我在AIX8上编译一个动态库,使用了一个cpp文件和一个fortran文件:
My cpp code is:
/*****************************************************/
/* main1.cpp */
/*****************************************************/
#include <stdio.h>
#include <stdlib.h>
#define hupotest HUPOTEST
extern "C" void hupotest();
extern "C" int main1()
{
printf("Cpp function display!\n");
hupotest();
return 1;
}
/* end of main1.cpp */
My fortran code is:
/*****************************************************/
/* mainf.f */
/*****************************************************/
SUBROUTINE HUPOTEST()
WRITE(*,*) 'Fortran function display!'
RETURN
END
/* end of mainf.f */
我是这样建立动态库的:
xlc -c main1.cpp
xlf -c mainf.f
xlc -o libtest.so -G main1.o mainf.o
然后我做了一个可执行程序去调用这个动态库里面的函数(使用dlopen和dlsym), 当我调用cpp里面的mian1函数时,我遇到了一个错误:
"Cpp function display!"
"Illegal instruction(core dumped)"
那位高手有过这方面的经验,给小弟指点一二,多谢。
是不是我动态库做的方法有问题?