当前位置:首页 » 编程软件 » c静态编译

c静态编译

发布时间: 2022-01-24 23:21:15

㈠ 用C做的静态库,能破解成c语言

目前没有技术可以把C和C++编译出的机器语言反编译成源程序
但是可以反编译成汇编程序,这个叫反汇编。
因此:用C做的静态库,不能破解成C语言

㈡ c语言有静态编译吗

你说的是库吧,不是头文件,头文件没关系,
如果要静态编译,使用gcc的话,只要加上-static选项就行了

㈢ cmake编译opencv程序的时候怎么静态编译

使用opencv需要编译源码,得到库文件。可以用cmake构建项目后编译,也可以直接用官方提供的编译好的版本。 官方提供的编译库一般只是标准版本,没有附加某些库,比如tbb等,要想让opencv使用tbb等库,就只能自己构建项目后编译。

㈣ 如何将c语言的math.h编译为静态库在mcu上使用

库函数的源码你是看不到的。要找实现的话得去网络。自带的都是编译好的东西(用到时直接调用)不是原C程序。
至于sin()的实现。如果你学过高数应该知道泰勒展开。
不知道的话直接给你公式:sin(x)=x-(x^3)/3!+(x^5)/5!+...(按这规律求和下去,x是弧度)

用一个for循环。要精确的话循环的次数多些就行

㈤ C语言里printf函数可不可以静态编译到可执行文件里

为什么不可以呢?

linux怎么静态编译

关于在 Linux 环境下面对 C 语言源程序进行静态编译,关键是要看你的 C 语言源程序中都使用到了哪些系统库函数?如果是标准的输入、输出库函数,只要在命令行提示符 $ 下面执行:
gcc my_prog.c 即可(缺省的可执行文件名是:a.out);如果在用户的源程序中使用到了数学计算函数,那么在命令行提示符 $ 下面必须执行:
gcc my_prog.c -IMATH.LIB(假设涉及到各种数学计算的数学库的库文件为:MATH.LIB)
如果不加上 -IMATH.LIB 选项,那么即使你的源程序编写得再正确,也无法正常编译。
另外还有一个必须要注意的就是:在 Linux 的环境变量中,一定要把 INCLUDE、LIB 所在的路径设置好(在 SHELL 文件中写好),这样在使用 Linux 系统时才能够减少出错的机会。

㈦ 请问怎么用自己写的C源码和静态链接库编译新的动态链接库

要在test.c加入#pragma comment(lib, "a.lib"),然后自己重新对a的函数封装,再编译成b.dll,这样的话,只要动态载入b.dll就行了,不过a.dll应该放在b.dll同一目录下。

㈧ C语言编译问题 静态链接

链接静态库的意思就是在编译阶段需要将静态库链接到工程中,这样在编译时程序才不会出错,在用到静态库的函数时能够找到函数的实现,如果没有链接静态库则编译时会报错。
这里需要区分的就是链接动态库与静态库的区别,你可以到网上找一些资料看看。
而且链接静态库是将整个库文件都导入到了工程中,所以会增加工程的大小。

㈨ windows怎么编译.c文件

(1)先用记事本编写如下所示的代码,并另存为hello.cpp,假设其保存路径为
C:\Users\Administrator\Desktop。
#include<iostream>
using namespace std;
int main()
{
cout<<"hello world!"<<endl;
return 0;
}
(2)用记事本写一段简单的批处理文件,内容如下所示,在保存文件时选择另存为,文件名
假设为batch.bat,bat是批处理文件的后缀,保存类型选择:所有文件(这个尤其需要注意),
假设其保存路径也是:C:\Users\Administrator\Desktop。
set path=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\bin
set include=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\include
set lib=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\lib
上面批处理文件的第一句话表示设置环境变量,这个也可以通过:计算机/属性/高级系统设置/
环境变量/用户变量,把D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\bin
放到path的值里去,记得与之前已有值之间用";"隔开。这个path文件夹是我们装载VS2010时自
带的,在设置路径时要根据自己的安装路径进行修改,里面包含微软在Windows下给我们提供的
C/C++编译器cl.exe程序(编译器自身也是一个软件程序,只是它的作用是用来编译其它的程序),
当然还有link.exe链接程序,调用cl时,系统会自动调用link程序(后面将看到我们只用了cl命令就
可以进行C/C++程序的编译、链接)。后面两句话分别表示包含C++中自带的头文件库和静态链接
库,静态理解库包含了头文件中函数对应的实现部分,为了不让人们看到其中的源代码,它以二进
制文件形式编码,若要查看其内容需要进行反汇编。
(3)通过cmd命令进入DOS操作界面,输入cd C:\Users\Administrator\Desktop进入cpp文件和bat
批处理文件所在的位置,然后键入batch.bat进行批处理,这些操作在VS2010集成开发环境中都为我
设置好了,所以我们在里面写C/C++程序时并没有这样设置路径的繁琐操作,但是通过自己手动的
路径设置,我们会对程序的编译、链接、执行有更加深入的认识。
(4)键入cl hello.cpp,我们会看到计算机报出了“无法启动此程序,因为计算机中丢失mspdb100.dll。
尝试重新安装该程序以解决此问题”的系统储物,dll文件是动态链接库文件,其是在cl.exe程序运行时
才被加载进来的文件,这个静态链接库lib文件不同。这说明在D:\Softwares\en_Visual_Studio2010_
Professional_x86_x16-81637\VC\bin路径里没有找到mspdb100.dll,原来此文件在文件夹D:\Softwares\
en_Visual_Studio2010_Professional_x86_x16-81637\VC\Common7\IDE里,我们可以将此文件拷到bin
文件夹里,或将D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\Common7\IDE加到
批处理的path环境变量里,或者将其加到cpp文件所在的文件夹里,这只会引起在搜索顺序上的不同。
(5)再次键入cl hello.cpp,我们看到在C:\Users\Administrator\Desktop文件夹里得到了hello.obj文件,
这是编译后的输出文件,但是没有得到可执行exe文件,DOS界面里出现这样的错误“LINK:fatal error LNK
1104:cannot open file 'kernel32.lib' “这样的链接错误,kernel32.lib是Windows系统文件,通过Windows
自带的搜索工具,我们看到此文件在文件夹C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib里,我们
可以将其加到cpp文件所在的文件夹或bin文件里。再次键入cl hello.cpp,我们发现这次程序被成功编译链接
了,cpp文件所在的文件夹里多了两个文件:hello.obj和hello.exe。
(6)在DOS界面键入hello.exe,程序被执行,输出了我们预想的hello world!,至此,在Windows下模拟
linux命令行操作,编译C/C++文件全部完成了。

热点内容
白噪声加密 发布:2024-12-26 20:31:02 浏览:638
怎么防止电脑删除脚本 发布:2024-12-26 20:19:19 浏览:150
输入服务器或许可证文件怎么输 发布:2024-12-26 20:10:40 浏览:160
pythonarcgis 发布:2024-12-26 20:09:48 浏览:699
python初始化变量 发布:2024-12-26 20:05:27 浏览:179
win10清理缓存文件 发布:2024-12-26 20:04:50 浏览:361
登微信手机号填了密码是什么意思 发布:2024-12-26 19:40:16 浏览:249
苹果电脑连接不了服务器 发布:2024-12-26 19:07:18 浏览:116
传奇装备提示脚本 发布:2024-12-26 19:06:31 浏览:672
局域网dns服务器地址 发布:2024-12-26 18:58:42 浏览:993