• 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就可以了。
  • 相关阅读:
    九大经典算法之插入排序、希尔排序
    1072 开学寄语 (20 分)
    1070 结绳 (25 分
    查找字符串中的所有数字
    通过类继承计算梯形面积
    将命令的输出生成一个Web页面
    从Internet下载一个文件
    使用Excel管理命令输出
    将一个命令的输出保存到CSV文件
    使用属性存储用户编号和姓名
  • 原文地址:https://www.cnblogs.com/huqingyu/p/202850.html
Copyright © 2020-2023  润新知