zoukankan      html  css  js  c++  java
  • 编译范例

    all:test.cpp
    g++ -o test test.cpp -I/bbox/anaconda/include/python2.7 -L/bbox/anaconda/lib -lpython2.7 -I. -I/bbox/anaconda/lib/python2.7/site-packages/numpy/core/include

    test.h

    复制代码
    1 #ifndef _TEST_H_
    2 #define _TEST_H_
    3
    4 void TestA();
    5 void TestB();
    6
    7 #endif
    复制代码



    test_a.cpp

    复制代码
    1 #include <stdio.h>
    2 #include "test.h"
    3
    4 void TestA()
    5 {
    6 printf("TestA func ");
    7 }
    复制代码



    test_b.cpp

    复制代码
    1 #include <stdio.h>
    2 #include "test.h"
    3
    4 void TestB()
    5 {
    6 printf("TestB func ");
    7 }
    复制代码



    生成so文件的命令

    g++ test_a.cpp test_b.cpp -fPIC -shared -o libtest.so

    生成.a文件的命令

    1 gcc -c test_a.cpp
    2 gcc -c test_b.cpp
    3 ar -r libtest.a test_a.o test_b.o




    test.cpp

    复制代码
    1 #include "test.h"
    2
    3 int main()
    4 {
    5 TestA();
    6 TestB();
    7
    8 return 0;
    9 }
    复制代码



    采用动态库编译命令

    g++ test.cpp -o test -L. -ltest



    执行

    export LD_LIBRARY_PATH=./
    ./test

    执行结果如下。

    采用静态库编译命令

    g++ -static -o test -L. -ltest test.cpp

    执行效果


    静态库的嵌套调用,有时候我想做一个自己的静态库,它里面要调用其他静态库里面的函数,经过试验

    这个好像用ar -r不行,所以就在链接的时候需要两个库文件都包含,同时要有这一个头文件才行。。。

  • 相关阅读:
    h5及c3新增的一些内容
    Ajax实现步骤和原理
    prototype和__proto__的关系是什么?
    深拷贝与浅拷贝
    promise与async和await的区别
    ph

    p
    python4
    python3
  • 原文地址:https://www.cnblogs.com/jkred369/p/6876886.html
Copyright © 2011-2022 走看看