zoukankan      html  css  js  c++  java
  • VC编译选项


    今天练习VC编译选项设置。现在有三个工程A、B和C;A和B是链接库,C是EXE的demo程序。B调用A,C调用B。

    1.最初的编译是:A、B编为动态库,并生成LIB,C包含这个LIB,生成EXE。
    这样是简单的,C的项目设置LINK属性页、Category为Input的选项中,填入A与B的LIB就可以了。
    需要注意的是,在这里用到了多线程,在C/C++属性页中、Category为Code Generation的选项中,Use run-time Library需要选择MuiltiThreaded。而DEBUG版选择对应的DEBUG MultiThreaded。
    微软网站上说,Release版的run-time库与Debug版的run-time库是不同的,所以当你在B中用release而调用的却是A工程生成的debug版LIB;或是在B中用Debug而调用的却是A工程生成的Release版LIB,将会有警告:
    LINK : warning LNK4098: defaultlib "LIBCMT" conflicts with use of other libs; use /NODEFAULTLIB:library

    2.现改为:A编成静态库,B为动态库,C只要包含B就可以了,不用A。
    要让A成为静态库,需要另起一个工程,在VC建项目向导中选择最后一项:static library,这样在project的setting对话框中就没有Link属性页,取而代之的是Lib属性页。
    A生成好静态的LIB后,B只要引用该LIB就可以了。
  • 相关阅读:
    PHP学习笔记一
    抓取【你懂的】应用的数据
    抓取[今日新闻]应用的数据
    开源项目Html Agility Pack实现快速解析Html
    澳大利亚玩全攻略(图文全彩版)
    畅游夏威夷,看这本就够了
    科学丨光的折射
    未解之谜.下
    科学是什么
    大脑奥秘知多少:脑科学初探
  • 原文地址:https://www.cnblogs.com/huqingyu/p/202850.html
Copyright © 2011-2022 走看看