如何开发类似于标准c的库?

muyiyj 2010-04-20 02:42:23
我现在需要开发一个库,既可以被linux调用,有可以被windows调用,类似于标准c库一样的。
我有别人开发类似的代码,里面全是.c和.h文件,另外还有Makefile,.scc, mcumsg.vcproj.7.10.old ,mcumsg.vcproj
等文件。它可以生成.dll, .lib库被windows调用,也可以生成被linux调用的库。

我不知道什么开发工具编译能够实现,vc6.0是 TC2.0都无法实现,希望大家能给我点建议
...全文
105 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
muyiyj 2010-04-23
  • 打赏
  • 举报
回复
谢谢大家,我现在基本确定是通过制作makefile文件,来编译生成对应的dll和lib
Eleven 2010-04-23
  • 打赏
  • 举报
回复
用标准C++写应该没有问题的
rainsly 2010-04-23
  • 打赏
  • 举报
回复
代码可以跨平台

二进制无法跨平台,连可执行文件结构都不同,一个PE,一个ELF.......
lixung 2010-04-23
  • 打赏
  • 举报
回复
vc下面有个读取makefile的工具来编译程序
windows,linux下编译程序的命令是不一样的,所以你要写不同的makefile
lixung 2010-04-23
  • 打赏
  • 举报
回复
代码用标准的c/c++写,编译的时候用makefile,这样就可以跨平台
makefile当然可以在vc6下使用
muyiyj 2010-04-23
  • 打赏
  • 举报
回复
自己顶下
康斯坦汀 2010-04-22
  • 打赏
  • 举报
回复
.c 和 .h肯定是可以跨平台的,也就是说,你的函数符合ANSI C的话,一定可以
跨平台,但是项目工程文件肯定不是跨平台的,也就是说,你需要针对VC6,GCC
等不同的编译器制作不同的工程文件,一般都是Makefile文件。
你需要了解不同平台下编译器的工程文件写法,然后针对之编写。
sunlin7 2010-04-22
  • 打赏
  • 举报
回复
如果我对楼主的要求理解没有错误的话,楼主的要求难以实现。就是说从vc编译器和gCC编译器自带的库层面来说,没有办法实现楼主这样的要求。

Qt是一个跨平台的界面环境,里面也带了编译环境,可能会实现楼主的跨平台要求。
finder_zhang 2010-04-22
  • 打赏
  • 举报
回复
楼主,你说VC6不行是什么意思?
你说生成的文件是CPP是什么意思?

在VC6里面,可以选DLL,LIB工程的啊.你有没有试过?
muyiyj 2010-04-22
  • 打赏
  • 举报
回复
都没人知道么?
muyiyj 2010-04-22
  • 打赏
  • 举报
回复
刚大体了解了下,makefile,是不是得做个makefile文件,然后利用它来编译啊?
kemee 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 r3000 的回复:]

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

正解
muyiyj 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 r3000 的回复:]
.c 和 .h肯定是可以跨平台的,也就是说,你的函数符合ANSI C的话,一定可以
跨平台,但是项目工程文件肯定不是跨平台的,也就是说,你需要针对VC6,GCC
等不同的编译器制作不同的工程文件,一般都是Makefile文件。
你需要了解不同平台下编译器的工程文件写法,然后针对之编写。
[/Quote]
makefile文件只有linux能用吧,vc能用么?
muyiyj 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lisunlin0 的回复:]
如果我对楼主的要求理解没有错误的话,楼主的要求难以实现。就是说从vc编译器和gCC编译器自带的库层面来说,没有办法实现楼主这样的要求。

Qt是一个跨平台的界面环境,里面也带了编译环境,可能会实现楼主的跨平台要求。
[/Quote]
qt什么软件,全称是什么?
muyiyj 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 finder_zhang 的回复:]
楼主,你说VC6不行是什么意思?
你说生成的文件是CPP是什么意思?

在VC6里面,可以选DLL,LIB工程的啊.你有没有试过?
[/Quote]
我的意思是,我用vc6生成dll工程后,将.cpp改为.c后,就无法正常加载了。因为linux只识别.c文件
muyiyj 2010-04-21
  • 打赏
  • 举报
回复
自己顶下
muyiyj 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 nola 的回复:]
用纯c写代码,windows下,怎么工具都行,linux下一定要编写makefile进行编译测试。
[/Quote]
不是吧,我是要编译成一个库,vc6.0就不行,生成的文件是.cpp的,而TC只能编译.lib
踏实每一步 2010-04-20
  • 打赏
  • 举报
回复
用纯c写代码,windows下,怎么工具都行,linux下一定要编写makefile进行编译测试。
muyiyj 2010-04-20
  • 打赏
  • 举报
回复
代码是用标准c语言写的。但也只是.c 和 .h文件啊,这个怎么做成一个工程,可以生成.dll, .lib,和linux下可以用的.a, .la
soswaidao 2010-04-20
  • 打赏
  • 举报
回复
友情帮顶,友情帮顶
加载更多回复(1)

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧