gcc 编译环境 怎么编译一个源码不可见 但是有函数接口的文件

xadream 2009-12-11 10:08:32
只想给别人提供一个.h 和编译过的文件或者库文件 不想提供源码 应该怎么编译啊
...全文
113 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
freshui 2009-12-11
  • 打赏
  • 举报
回复
那你给人家要给两个库文件
或者给人家库的时候直接指明你的库依赖的第三方库是什么,让他自己吧这些整合进去
xadream 2009-12-11
  • 打赏
  • 举报
回复
我用vc搞了个lib和h 然后vc另键了一个工程也能够使用
不过用gcc的话应该怎么搞啊 用什么参数才能编译进去
就是说makefile应该怎么写
macrojj 2009-12-11
  • 打赏
  • 举报
回复
你建dll 或者lib工程
最后会生成dll 或者lib 加上你的h 给他就是了。
xadream 2009-12-11
  • 打赏
  • 举报
回复
但是我要编译这样的库啊 别人来链接我的库文件或者编译好的.o .a文件


我这边如果有.h .c 里面包含数个函数 我应该怎么操作啊?
mstlq 2009-12-11
  • 打赏
  • 举报
回复
不用编译……
直接链接……
WingForce 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xadream 的回复:]
试了 不行 您那便可以吗?

不过我如果用gcc直接把LIBR.cpp编译.o
使用gcc Try.cpp -O LIBR.o 倒是可以编译和运行
[/Quote]
那不就ok了,我没有去试,也很久没有用gcc了
xadream 2009-12-11
  • 打赏
  • 举报
回复
试了 不行 您那便可以吗?

不过我如果用gcc直接把LIBR.cpp编译.o
使用gcc Try.cpp -O LIBR.o 倒是可以编译和运行
WingForce 2009-12-11
  • 打赏
  • 举报
回复
//LIBR.h
int FunTmp(int *pData);



//Try.cpp
#include "LIBR.h" //这里当然是include 一个头文件
int main(void)
{
int nTmp = 0;
return FunTmp(&nTmp);
}


gcc Try.cpp -I LIBR.h -L LIBR.lib -O try.a
xadream 2009-12-11
  • 打赏
  • 举报
回复
试验了 还是摸索不出来 继续求教 谢谢大家
//LIBR.lib //源文件见上

//LIBR.h
int FunTmp(int *pData);

//Try.cpp
#include "LIBR.lib"
int main(void)
{
int nTmp = 0;
return FunTmp(&nTmp);
}

我应该使用什么命令才能编译啊
我使用 gcc Try.cpp -I LIBR.lib -O 不行
使用 gcc Try.cpp LIBR.lib -O 也不行
使用 gcc Try.cpp -I LIBR.h -L LIBR.lib -O 更不行啊
WingForce 2009-12-11
  • 打赏
  • 举报
回复
去查gcc手册吧,简单来说

gcc filename.c -I lib_header.h -L lib.o -O program_execute_name

就是说-L后面跟随库的名字
xadream 2009-12-11
  • 打赏
  • 举报
回复
打错了 函数是int FunTmp(int *pData)
xadream 2009-12-11
  • 打赏
  • 举报
回复
不是啊 比如很简单的函数
int FunTmp(int &pData)
{
return (!(*pData+=10));
}

我用vc编译了一个lib 然后同时有个.h 里面声明了这个函数

vc比较简单直接在要调用的地方include这个.h 然后工程属性里面添加就行了
我想知道用gcc的话 怎么才能调用到这个lib

5,531

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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