Dependent Origination

愚蠢的静态连接

Posted on: September 27, 2008

04/05/2007

最近工作太忙了. 自己多写了很多东西想要以后省力气是一方面的原因, 另一方面几乎花了一天半的时间在这个愚蠢的静态连接上面. 所以进度落下了. 要做的事情又很多, 而且每天还总有interrupt, 不是换了payment processor导致revenue下降, 就是launch再即, 可是东岸大公司一定要解决之前已经决定drop, let the user suffer的issue, 而且明明是他们自己的问题, 又归结到我不遵守spec上面. 天知道哪里的spec上面写了这些东西. 好在经过前面几个月的厉练, 我已经见怪不怪了.

回到这个静态连接上面. 我在写一个小工具, 因为要拷到production server上面去fix problem, 所以写完一定要build一个static version的独立的executable. 但是动态连接一直没问题, 静态连接却总是报错, 说有undefined reference. 试了重新build, 在makefile里面乱改都不行. 一天下来头大了无数倍. 直觉上面肯定是ld在静态连接时的library function search的问题. 但是对makefile不熟, 在一些地方repeat了连接的库, 也没有什么用处.

直到第二天, 绝望无策, 准备改自己的code之前, 问了一句老板. 老板只说show me the link line. 我一下子明白了应该把那个多余的库连在哪里. 简而言之, 从前的link line是这个样子的: -la -lb, 但是b就会complain有a中的函数的undefined reference. 现在呢, 就在link line最后, 再连一遍a, 变成-la -lb -la. 终于一切万事大吉了!

其实还应该好好研究一下这个问题究竟是怎么回事儿. google半天也没有个所以然, 可能是关键字用得不对吧. 总之我觉得ld在静态连接的时候是lazy search, 才会有这样的问题出现. 回想一下自己也真是够笨的了, 虽然早就知道是这个问题, 但是居然半天过去了, 也没想到这么试一下. 直到忍无可忍问了老板, 才突然灵光突现. 老板这么忙, 我可不能老是干这种事情啊.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

September 2008
M T W T F S S
« Dec   Oct »
1234567
891011121314
15161718192021
22232425262728
2930  

Twitter

  • is reflecting on the past three years and reading the article on divided self aptly showing up at the top of my tweeter feed. 1 month ago
  • is having a nice feeling of connecting dots all over the place. they are now illuminating the same point. 2 months ago
  • Style Transfer is fun! TensorFlow rocks! #WTM17 https://t.co/zYP0IFIDfp 4 months ago
  • couldn't get over the jetlag, sleeping during the day from seven to four, for days. 6 months ago
  • is emptying trash and happily discovering the available disk space now ranks at 100G+. 7 months ago

Flickr Photos

%d bloggers like this: