QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 790|回复: 3

请教一个编写linux共享库的问题。。。。。。。。。。。。。

[复制链接]
发表于 2003-4-6 02:53:22 | 显示全部楼层 |阅读模式
我在win2k下使用vc.net编写过一个CS服务器的插件程序,一直都运行得很好,想把这个东东移植到linux,可惜怎么编译都不成功。以下是我使用vc.net编译时记录下来的log。
[code:1]
命令行
正在创建临时文件"g:\VC.NET\My Program\CounterStrike\Taishan_Admin\Debug\RSP000001.rsp",其内容为
[
/Od /I "G:\HLSDK\metamod" /I "G:\HLSDK\dlls" /I "G:\HLSDK\engine" /I "G:\HLSDK\common" /I "G:\HLSDK\pm_shared" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "TAISHAN_ADMIN_EXPORTS" /D "_MBCS" /D "_WINDLL" /Gm /EHsc /RTC1 /MTd /Fo"Debug/" /Fd"Debug/vc70.pdb" /W3 /c /Wp64 /ZI /TP
"Taishan_Admin.cpp"
"OverrideFunction.cpp"
]
正在创建命令行"cl.exe @"g:\VC.NET\My Program\CounterStrike\Taishan_Admin\Debug\RSP000001.rsp" /nologo"
正在创建临时文件"g:\VC.NET\My Program\CounterStrike\Taishan_Admin\Debug\RSP000002.rsp",其内容为
[
/OUT:"Debug/Taishan_Admin.dll" /INCREMENTAL /NOLOGO /DLL /DEF:"Taishan_Admin.def" /DEBUG /PDB:"Debug/Taishan_Admin.pdb" /SUBSYSTEM:WINDOWS /IMPLIB:"Debug/Taishan_Admin.lib" /MACHINE:IX86  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
"Debug\OverrideFunction.obj"
"Debug\Taishan_Admin.obj"
"Debug\dllapi.obj"
"Debug\dllapi_post.obj"
"Debug\engine_api.obj"
"Debug\engine_api_post.obj"
"Debug\api_info.obj"
"Debug\h_export.obj"
"Debug\log_plugin.obj"
"Debug\meta_api.obj"
"Debug\plugin.obj"
"Debug\sdk_util.obj"
"Debug\trace_api.obj"
"Debug\vdate.obj"
"Debug\Taishan_Admin.res"
]
正在创建命令行"link.exe @"g:\VC.NET\My Program\CounterStrike\Taishan_Admin\Debug\RSP000002.rsp""
输出窗口
正在编译...
Taishan_Admin.cpp
g:\VC.NET\My Program\CounterStrike\Taishan_Admin\Taishan_Admin.cpp(29) : warning C4800: "float" : 将值强制为布尔值"true"或"false"(性能警告)
g:\VC.NET\My Program\CounterStrike\Taishan_Admin\Taishan_Admin.cpp(281) : warning C4800: "int" : 将值强制为布尔值"true"或"false"(性能警告)
OverrideFunction.cpp
正在生成代码...
正在链接...
结果
生成日志保存在"file://g:\VC.NET\My Program\CounterStrike\Taishan_Admin\Debug\BuildLog.htm"中
Taishan_Admin - 0 错误,2 警告
[/code:1]
我在linux下把我的代码都copy过去,然后使用anjuta创建一个工程插入这些代码,逐个逐个编译成.o文件,然后手动在term中使用命令:
gcc -shared -fPIC -o Taishan_Admin.so *.o
这样生成一个.so文件,编译的时候很顺利,而且CS的服务器能够加载,但是不能运行,应该是这个so文件有问题的,但不知道什么问题,能帮帮我吗?
发表于 2003-4-6 17:07:03 | 显示全部楼层
CS是怎样使用你的so的,有文档说明么.so放到了合适的目录下了么?
使用的时候,(由系统加载)只要将要使用的库的头文件加进你的源文件,使用其中的函数,
然后在链结的时候指定这个库的目录和库名就可以了.

我没有打过cs,不知道是作什么用的,ibm的开发者园地里有共享库的详细文章
回复

使用道具 举报

 楼主| 发表于 2003-4-6 18:02:13 | 显示全部楼层
ibm的开发者园地里有共享库的详细文章

IBM开发者有园地在那里啊?
谢谢。
回复

使用道具 举报

发表于 2003-4-6 18:20:01 | 显示全部楼层
用google






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 06:37 , Processed in 0.064432 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表