我正在尝试为我的项目创建一些小组件,这些小组件都将由版本控制,我认为最好的方法是为这些组件创建静态库。
如果这种方法是可以实现并且可以接受的,那么如果我使用“嵌入式项目向导”功能来生成框架项目,那么我想将这些静态库链接到Visual Studio中的更大项目。
我该怎么做?
我尝试按照https://www.technical-recipes.com/2013/using-win32-static-libraries-in-visual-studio-projects/中的说明进行操作,这似乎适用于“控制台”应用程序,但是当我在Visual Studio中创建新项目时使用“嵌入式项目向导”时却无效。
为了达到上述目的,我遵循的步骤如下:
- 要创建静态库,我执行了以下操作:
a。在Visual Studio中,我在C驱动器上的位置C:\ Projects
中生成了一个名为StaticLib.lib的新“静态库”项目。b。然后,我在Header Files目录下添加了一个名为“ MyFunctions.h”的新项目。
c。我用以下代码填充了这个新的头文件
/**
*/
/* Define to prevent recursive inclusion ---------------------------*/
#ifndef __MYFUNCTIONS_H
#define __MYFUNCTIONS_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
/* USER CODE BEGIN Prototypes */
int add_two_numbers(int a,int b);
/* USER CODE END Prototypes */
#ifdef __cplusplus
}
#endif
#endif /*__ MYFUNCTIONS_H */
/**
* @}
*/
/**
* @}
*/
/*************** (C) COPYRIGHT STmicroelectronics *****END OF FILE****/
d。然后,我在源文件目录下添加了一个名为“ MyFunctions.cpp”的新项,并在其中填充了以下代码:
#include "MyFunctions.h"
#include "pch.h"
int add_two_numbers(int a,int b)
{
return a+b;
}
e。在构建此项目时,我发现我有一个StaticLib.lib文件,该文件是在C:\ Projects \ StaticLib \ Debug中创建的。我还可以在C:\ Projects \ StaticLib目录中看到MyFunctions.h和MyFunctions.cpp文件。
- 要生成我的嵌入式项目,我执行了以下步骤:
a。我在名为C:\ Projects \ UseStaticLib的新目录中生成了STM32Cube文件。
b。然后在Visual Studio中,我使用“嵌入式项目向导”将.gpdsc文件导入到项目中
c。在UseStaticLib解决方案中,我在相关位置的以下内容中编辑了main.c:
#include "MyFunctions.h"
add_two_numbers(1,2);
这就是我被困住的地方!!!
如何将我的StaticLib链接到此UseStaticLib解决方案?