小编Dev*_*Dev的帖子

在单个.msi包中打包多个.exe

我试图将多个.exe放在单个.msi包中,它应该逐个安装.

假设我有一个a.exe,b.exe和c.exe

单击.msi包时应安装a.exe,并且.msi应该在成功安装a.exe后等待它,它应该触发b.exe.成功安装b.exe后,应触发c.exe进行安装.

.exe文件(a.exe,b.exe和c.exe)是标准安装程序(用于egCodeSourcery,flash工具,IAR工作台等).

请告诉我如何实现这一点以及我需要哪些工具.

关心Horaira

windows-installer

9
推荐指数
2
解决办法
2万
查看次数

使用C而不使用OS的小型嵌入式系统中的静态与共享库(假设为XIP)

没有RTOS/OS的小型嵌入式系统是否使用动态/共享库.我的理解是,使用它非常困难,而且效率不高.

如果我们多次调用一个静态库中存在的API.API代码是否会放置在每个调用位置,如宏扩展或代码/文本将是所有调用的通用位置.我认为代码/文本很常见.

如果我为具有多个API的.c文件创建了静态库,并且我将其与主文件静态链接,并且在主文件中只调用了一个API,那么我的问题是整个库是否包含在最终的.bin中或仅特定的API代码.

从上面的问题,你可以假设我缺少基本面本身,所以任何人都可以提供相关的链接来刷这些.

问候
[编辑]

我试过以下事情

addition.c模块

`int addition(int a,int b)`  
`{`  
`int result;`  
`result = a + b;`  
`return result;`  
`}`

`size addition.o`   
23        0       0      23      17 addition.o    
Run Code Online (Sandbox Code Playgroud)

multiplication.c模块

`int multiplication(int a, int b)`  
`{`  
`int result;`  
`result = a * b;`  
`return result;`  
`}`
`size multiplication.o`  
21        0       0      21      15 multiplication.o  
Run Code Online (Sandbox Code Playgroud)

创建了两者的目标文件并放入了archieve

ar cr libarith.a addition.o multiplication.o   
Run Code Online (Sandbox Code Playgroud)

然后静态链接到我的主应用程序
example.c模块

`#include "header.h"`  
`#include <stdio.h>`  
`1:int main()`  
`2:{`  
`3:int result;`  
`4:result = addition(1,2);`  
`5:printf("addition result is : …
Run Code Online (Sandbox Code Playgroud)

embedded shared-libraries static-libraries

2
推荐指数
1
解决办法
4367
查看次数