作者jianiau (jianiau)
标题Re: [问题] 请问能不能查询link时连到哪个档案
时间Sat Sep 6 23:19:07 2014
※ 引述《jserv (松鼠)》之铭言:
: ※ 引述《jianiau (jianiau)》之铭言:
: : 我在编译一个给tcl 用的extension 遇到getopt 这个function的问题
: : 再多次呼叫getopt後
: : snmp_set -v1 -cpublic 10.10.160.10 \
: : docsIf3CmtsSignalQualityExtExpectedRxSignalPower.5000092 i -50
: : 最後一个参数 "-50" 会被当成是一个参数,出现错误讯息
: : invalid option -- '5'
: 感觉应该改原本的程式码。
: man 3 getopt
: [...]
: : 请问有肥有方法可以看出我到底连结到哪里去了,或是有其他方式可以debug
: : 谢谢
: readelf -a 可以看仔细些。
: getopt.o 有必要存在吗?
感谢,
多次尝试後似乎是正常运作了,最麻烦的是我不知道是改了什麽造成的
另外我好奇的是为什麽只有getopt这个function不link到我修改过的那一只
因为我只会用printf debug,不ink进去我就没辙了
至於为什麽要getopt.o是因为原本的code是在windows下编译的,我直接把当初
编译的方式拿来用,看来没我想的那麽简单
编译tcl的netsnmp extension我已经试了好多次了,主要的目的是做出自己的
MIB Browser,目前因为比较认真的玩Linux,又再试一次现在已经能做出大部分
想要的功能了
==
终於发现我错在哪里了
差在环境变数POSIXLY_CORRECT
我的library只有一个function(snmp_set)会去设定POSIXLY_CORRECT
如果我先呼叫snmp_set,之後的getopt遇到没有"-"的参数就停了
如果我先呼叫了一些没设定环境变数就getopt的function时,之後的getopt
就跑另外一种模式了,这时getopt会把所有参数爬完,造成我遇到的这个问题
想不到一个环境变数能使一个function有不同的模式
真是个有趣的经验
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.249.110.203
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1410016751.A.C23.html
※ 编辑: jianiau (111.249.110.203), 09/08/2014 00:33:03