zoukankan      html  css  js  c++  java
  • VS2015如何新建C++或者C语言版的lib文件

      当我们不想公开我们的代码的时候,可以把我们的代码封装成静态数据连接库,即lib文件。下面介绍下如何生成lib文件。

      以VS2015为例,一种是C++版的lib文件,一种是C语言版的lib文件。

    一、按照下图新建Win32项目TestLib。

     二、选择静态库,取消预编译。

    三、新建完工程后,我们创建一个头文件和一个cpp文件。

    TestLib.h

    #pragma once
    
    void HelloWorld();

    TestLib.cpp

    #include <stdio.h>
    #include "TestLib.h"
    
    void HelloWorld()
    {
    	printf("Hello World
    ");
    }
    

    编译该工程后,我们得到一个TestLib.lib文件。

    四、再新建一个Win32控制台程序TestApp,进行测试。

    在TestApp.cpp里引入TestLib.h

    // TestApp.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "..TestLibTestLib.h"
    
    int main()
    {
        HelloWorld();
        return 0;
    }
    

    指定TestLib.lib的路径,方法如下:

    右键TestApp项目,点击属性,进入下图,在【连接器】--【输入】--【附加依赖项】里输入TestLib的路径。这里写的是相对路径 $(OutputPath)TestLib.lib。

    这样即使把我们的项目移到其他的目录里,依然能够进行debug。

    五、把TestApp项目设定成启动项。

    六、编译后,得到运行结果

    从上面可以看出我们的lib项目里的TestLib.cpp是cpp文件,即C++文件。

    如果我们把TestLib.cpp改成TestLib.c的话,这时候重新编译lib工程,然后运行TestApp,

    会出现如下错误:

    有时候,可能因为某种原因,lib文件必须是C语言,那么该怎么解决?

    这时候,我们需要更改我们TestLib.h这个文件。

    #pragma once
    
    #ifdef __cplusplus
    extern"C" {
    
    	void HelloWorld();
    #endif
    
    #ifdef __cplusplus
    }
    #endif
    
    为了在C++代码中调用用C写成的库文件,就需要用extern"C"来告诉编译器:这是一个用C写成的库文件,请用C的方式来链接它们。
    这样重新编译我们的Testlib.lib后,再次运行TestApp就可以了。
    高山流水,海纳百川!
  • 相关阅读:
    Qt数据库集成应用封装
    Qt个人研究进展
    Qt仿win7自动顶部最大化左侧右侧半屏效果
    Qt编写QUI皮肤生成器
    java定时任务
    进程间通信(java)--队列
    单例设计模式-java
    Java RMI
    远程调用方式概述
    IO模型-java版
  • 原文地址:https://www.cnblogs.com/ahcc08/p/6810033.html
Copyright © 2011-2022 走看看