• 常用的gcc命令


    gcc命令用于生成c语言的库

    g++用于生成c++的库

    使用g++ --help查看帮助 

    g++  class\First.cpp -static -g -o First

    编译 First.cpp  生产一个 名字为First.exe的文件

    生成.o文件

    g++ -O0 -g3 -Wall -c -fmessage-length=0 -oFirst.o First.cpp

    gcc -c xxx.c -o xxx.o //编译成OBJ

    生成dll

    gcc -shared xxx.c -o xxx.dll //编译成DLL, 注意, Cygwin-GCC默认导出所有的Function.

    ar r xxx.lib xxx1.o xxx2.o //打包多个obj成一个Lib (非连接)

    gcc xxx.c ./L aaa.dll -o xxx.exe //引用外部DLL生成EXE

    gcc xxx.c yyy.c -o zzz.exe //连接多个C文件, 生成EXE.

    gcc -I"/bin/include" -c xxx.c -o xxx.o //引用/bin/include目录下头文件,生成OBJ

    gcc -L"dll.a" xxx.c -o xxx.exe //连接dll.a, 生成EXE

    额外的,也可以写自己的导出Lib文件, 以方便其余程序引用DLL (如Cobol2002编译器就不支持直接引用DLL, 这个时候可以写一个Def, 并导出Lib文件, 便于Cobol2002使用)

    具体方法如下:

    1. 编译生成DLL :

    如: gcc -shared MyTest.c -o MyTest.dll, 生成MyTest.dll.

    2. 写一个DEF文件 (这里是MyTest.def), 简单的格式大致如下:

    LIBRARY MyTest //这里的MyTest对应于MyTest.dll
    EXPORTS
    AllocMemory @1 //导出的第一个function : 对应于MyTest.dll里面的AllocMemory(...), 注意, 参数可不用写
    ReadMemory @2 //导出的第二个function : 对应于MyTest.dll里面的ReadMemory-Function.

    //注意: function可以不用全部导出, 可以只选择你需要的Function.

    3. 用LIB工具(VC6有提供)生成LIB文件 (这里是MyTest.lib) :

    lib /def:MyTest.def //默认生成的名称为MyTest.lib.

    4. 到此生成完毕, 连接的时候只需要引用MyTest.lib即可, 但要注意XXX.exe 和MyTest.dll要放在同一目录下.

    可以用 gcc --help 查看具体的命令 etc...

  • 相关阅读:
    微信小程序、支付宝小程序、H5根据字符串生成相同的二维码
    大文件排序优化实践
    Nginx(五):http反向代理的实现
    Nginx(四):http服务器静态文件查找的实现
    关于大数据技术的一点思考
    Nginx(三):http模块的处理流程解析之正向代理
    基于Prometheus网关的监控完整实现参考
    谈谈mysql和oracle的使用感受 -- 差异
    Nginx(二): worker 进程处理流程框架解析
    退避算法实现之:客户端优雅回调
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331431.html
Copyright © 2020-2023  润新知