• makefile


    一.生成库文件
    cat test.h
    #ifndef __TEST_H__
    #define __TEST_H__
    #include <string.h>

    char CmdStr[200][200];

    class TEST
    {
        public:
                  TEST();
            virtual ~TEST();
        public:
                  int SplitBufByChar( char *buf1, char ch, char tc,int stno);
    };
    #endif
    cat  test.cpp
    #include "test.h"

    TEST::TEST()
    {
      for(int i=0;i<200;i++)
      {
        CmdStr[i][0]='\0';
      }
       
    }
    TEST::~TEST()
    {
      for(int i=0;i<200;++i)
      {
        CmdStr[i][0]='\0';
      }
    }

    int TEST::SplitBufByChar( char *buf1, char ch, char tc,int stno)
    {
      char *ss0, *ss1;
      int  i,j;
      char T[200][500];

      ss0 = buf1; i = 0;
      while ( (ss1=strchr( ss0, ch )) != NULL )  {
         *ss1 = 0; strcpy( T[stno+i], ss0 );
         i++; ss0= ss1+1; *ss1= ch;
      }

      if ( tc=='C' ) for (j=stno;j<stno+i;j++) strcpy(CmdStr[j],T[j]);
      return( i );
    }
    cat makefile
    DEST=libtest.a
    OBJS=test.o
    CC= g++
    CPPFLAGS = -O2 -Wall
    SHAREFLAGS = -shared -fPIC
    INCLUDES = -I.

    $(DEST) : $(OBJS)
            $(CC) $(SHAREFLAGS) $(INCLUDES) $(CPPFLAGS) -o $@ $^

    test.o : test.cpp test.h
            $(CC) $(INCLUDES) $(CPPFLAGS) -c $< -o $@


    二.使用动态库
    cat protest.cpp
    #include "test.h"
    #include <string>
    #include <vector>

    using namespace std;


    typedef struct{
        int id;
        string name;
    }STUDENT;

    typedef std::vector <STUDENT> STRSET;

    //extern char CmdStr[200][200];

    int main()
    {
     char sc[200];


     TEST test1;
     STUDENT stdt1,stdt2,stdt3;
     

     STRSET settest;
     stdt1.id=200;
     stdt1.name="GPRS100~SMS-03-17~新GPRS100元套餐办理~";
     stdt2.id=100;
     stdt2.name="GPRS200~SMS-03-18~新GPRS100元套餐办理~";
     stdt3.id=300;
     stdt3.name="GPRS300~SMS-03-19~新GPRS100元套餐办理~";


     settest.push_back(stdt1);
     settest.push_back(stdt2);
     settest.push_back(stdt3);

     for(std::vector <STUDENT>::iterator it=settest.begin();it !=settest.end();it++)
     {
      sprintf(sc,"%s",((STUDENT)*it).name.c_str());
       
            
            test1.SplitBufByChar(sc,'~','C',1);

            //test1.~TEST();
      printf("cmdstr[1]:%s\n",CmdStr[1]);
            printf("cmdstr[2]:%s\n",CmdStr[2]);
            printf("cmdstr[3]:%s\n",CmdStr[3]);
     }

     return 0;

    }

    cat makefile
    DEST=protest
    OBJS=protest.o
    CC= g++
    CPPFLAGS = -O2 -Wall
    INCLUDES = -I. -I../libtest/
    LIBS =-L../libtest/ -ltest

    $(DEST) : $(OBJS)
            $(CC) $(INCLUDES) $(LIBS) $(CPPFLAGS) -o $@ $^

    protest.o : protest.cpp
            $(CC) $(INCLUDES) $(CPPFLAGS) -c $< -o $@

  • 相关阅读:
    移动网络优化
    移动网络架构与数据传输
    移动网络简介与RRC
    CSS之外边距折叠
    网络协议之TLS
    Smarty 模板引擎简介
    FormData介绍
    相对路径与绝对路径
    OAuth2.0
    Redis学习手册(List数据类型)
  • 原文地址:https://www.cnblogs.com/zjz/p/1038440.html
Copyright © 2020-2023  润新知