--whole-archive选项解决的是编译中常遇到的问题。在代码中定义的符号(如函数名)还未使用到之前,链接器并不会把它加入到连接表中。

如下面这个例子:

a.cpp:

void func(){printf("I am in a.cpp.\n");}

main.cpp:

extern void func();

int main(){func(); printf("I am in main.cpp"); return 0;}

首先编译g++ -c a.cpp,再打包ar -r liba.a a.o。

如果这么链接g++ -L. -la main.cpp -o main,则链接器会报错,称func()未定义。其实改一下顺序既可以解决g++  main.cpp -L. -la -o main。

或者使用g++ -Wl,--whole-archive -L. -la -Wl,--no-whole-archive main.cpp -o main,将liba.a中的所有.o中的符号都链接进来。

还未完全理解,参考http://www.cnblogs.com/JimmyTY/p/5856217.html

最新文章

  1. 学习游戏渲染(Shader)的用处
  2. top状态及其常用技巧
  3. Intent传递对象的两种方法(Serializable,Parcelable) (转)
  4. iOS - Mac 锁屏快捷键设置
  5. HDU 3584 Cube --三维树状数组
  6. 错误 1 在应用程序级别之外使用注册为 allowDefinition='
  7. 自定义Web控件写事件
  8. UVA 753 - A Plug for UNIX(网络流)
  9. Android 之 Gallery
  10. sharepoint 2013 更改用户配置文件属性值的方法 modify user profile
  11. Sublime text 3搭建Python开发环境
  12. 201521123114 《Java程序设计》第6周学习总结
  13. hdu2601 An easy problem(数学)
  14. ambari下 hive metastore 启动失败
  15. 【CF932E】Perpetual Subtraction(NTT,线性代数)
  16. 【从零开始自制CPU之学习篇01】识别四色环电阻
  17. VS2017 ASP.NET MVC 5.0 开部署问题汇总
  18. ubuntn 安装python3 及 django及pip3
  19. java.util.Date和java.sql.Date 一点区别
  20. 30个开源电子商务系统(PHP)

热门文章

  1. css3同心圆闪烁扩散效果
  2. Python自定义web框架、Jinja2
  3. 知乎大神对IAAS,SAAS,PAAS区别的理解
  4. webgote的例子(2)Sql注入(SearchGET)
  5. 新装linux系统最基本设置
  6. 64_n2
  7. MySQL登录问题1045 (28000)处理步骤【原创】
  8. [Ext JS 4]后台自动产生图档
  9. AC日记——小A和uim之大逃离 II 洛谷七月月赛
  10. 【企业通讯录app番外篇】怎么样创建服务端?