我现在需要开发一个库,既可以被linux调用,有可以被windows调用,类似于标准c库一样的。
我有别人开发类似的代码,里面全是.c和.h文件,另外还有Makefile,.scc, mcumsg.vcproj.7.10.old ,mcumsg.vcproj
等文件。它可以生成.dll, .lib库被windows调用,也可以生成被linux调用的库。我不知道什么开发工具编译能够实现,vc6.0是 TC2.0都无法实现,希望大家能给我点建议

解决方案 »

  1.   

    只要代码是跨平台的就可以了,就像Wireshark,可以在LINUX上编译,也可以在WINDOWS上面编译,只是在WINDOWS上编译是需要Cygwin的。
      

  2.   

    代码是用标准c语言写的。但也只是.c 和 .h文件啊,这个怎么做成一个工程,可以生成.dll, .lib,和linux下可以用的.a, .la
      

  3.   

    用纯c写代码,windows下,怎么工具都行,linux下一定要编写makefile进行编译测试。
      

  4.   

    不是吧,我是要编译成一个库,vc6.0就不行,生成的文件是.cpp的,而TC只能编译.lib
      

  5.   

    楼主,你说VC6不行是什么意思?
    你说生成的文件是CPP是什么意思?在VC6里面,可以选DLL,LIB工程的啊.你有没有试过?
      

  6.   

    如果我对楼主的要求理解没有错误的话,楼主的要求难以实现。就是说从vc编译器和gCC编译器自带的库层面来说,没有办法实现楼主这样的要求。Qt是一个跨平台的界面环境,里面也带了编译环境,可能会实现楼主的跨平台要求。
      

  7.   

    .c 和 .h肯定是可以跨平台的,也就是说,你的函数符合ANSI C的话,一定可以
    跨平台,但是项目工程文件肯定不是跨平台的,也就是说,你需要针对VC6,GCC
    等不同的编译器制作不同的工程文件,一般都是Makefile文件。
    你需要了解不同平台下编译器的工程文件写法,然后针对之编写。
      

  8.   

    我的意思是,我用vc6生成dll工程后,将.cpp改为.c后,就无法正常加载了。因为linux只识别.c文件
      

  9.   

    makefile文件只有linux能用吧,vc能用么?
      

  10.   

    刚大体了解了下,makefile,是不是得做个makefile文件,然后利用它来编译啊?
      

  11.   

    代码用标准的c/c++写,编译的时候用makefile,这样就可以跨平台
    makefile当然可以在vc6下使用
      

  12.   

    vc下面有个读取makefile的工具来编译程序
    windows,linux下编译程序的命令是不一样的,所以你要写不同的makefile
      

  13.   

    代码可以跨平台二进制无法跨平台,连可执行文件结构都不同,一个PE,一个ELF.......
      

  14.   

    谢谢大家,我现在基本确定是通过制作makefile文件,来编译生成对应的dll和lib