首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux共享库带有类(version script) 抛砖引玉

2012-09-08 
linux共享库含有类(version script) 抛砖引玉!这是我的代码 在最后编译有问题C/C++ code#includestdio.h

linux共享库含有类(version script) 抛砖引玉!
这是我的代码 在最后编译有问题

C/C++ code
#include"stdio.h"void foo_v1(int f) {     printf("foo_v1\n");}__asm__(".symver foo_v1,foo@@VERSION_1.1");class Clock{    public:void SetTime(int NewH, int NewM, int NewS);};void  Clock::SetTime(int H, int M, int S){      int  Hour = H;      int  Minute = M;      int  Second = S;      printf("%d %d %d", Hour, Minute, Second);}__asm__(".symver SetTime ,SetTime@@VERSION_1.1");
C# code
//这是上边说的1.verVERSION_1.1{      global:      foo;      Clock::*;};

上边两个可以通过下面编译指令
C/C++ code
gcc -shared -fPIC -o libfoo.so.1.1 -Wl,--soname='libfoo.so.1' -Wl,--version-script=1.ver foo.c

可是在主函数这里编译连接时报错
C/C++ code
#include <stdio.h>class Clock;void foo(int);int main(){    Clock myClock;    foo(100);    myclock.SetTime(10, 12, 14);    return 0;}

C/C++ code
main.cpp: In function `int main()':main.cpp:6: error: aggregate `Clock myClock' has incomplete type and cannot be defined

望各位高手,帮我修改使之正确

[解决办法]
探讨
这是我的代码 在最后编译有问题
C/C++ code
#include"stdio.h"
void foo_v1(int f) {
printf("foo_v1\n");
}
__asm__(".symver foo_v1,foo@@VERSION_1.1");

class Clock
{
public:void SetTime(int NewH, int NewM, in……

[解决办法]
探讨

引用:

引用:
这是我的代码 在最后编译有问题
C/C++ code
#include"stdio.h"
void foo_v1(int f) {
printf("foo_v1\n");
}
__asm__(".symver foo_v1,foo@@VERSION_1.1");

class Clock
{
public:void Se……

[解决办法]
探讨

引用:

引用:

引用:

引用:
这是我的代码 在最后编译有问题
C/C++ code
#include"stdio.h"
void foo_v1(int f) {
printf("foo_v1\n");
}
__asm__(".symver foo_v1,foo@@VERSION_1.1");
……

热点排行