在vs2017中,多个cpp文件的复杂结构JNI,如何编译成一个.so库,并在线调试?
时间: 2024-03-05 12:51:24 浏览: 49
好的,以下是在 VS2017 中编译多个 cpp 文件的 JNI 程序并在线调试的步骤:
1. 创建一个新的 C++ 项目,并选择“动态链接库(DLL)”类型。
2. 在项目中添加需要的 cpp 文件和 JNI 头文件。可以在项目属性中设置头文件和库文件的路径,以便在编译时可以正确地链接它们。
3. 在项目属性的“配置属性”中选择“常规”,并将“配置类型”设置为“动态库(.dll)”。
4. 在项目属性的“配置属性”中选择“C/C++”,并在“预处理器”中添加以下预处理器定义:
```
WIN32
NDEBUG
_CONSOLE
_UNICODE
UNICODE
```
5. 在项目属性的“配置属性”中选择“链接器”,并在“输入”中添加以下库文件:
```
jvm.lib
```
6. 在项目属性的“配置属性”中选择“调试”,并将“命令”设置为 Java.exe 的路径,将“命令参数”设置为需要运行的 Java 类的完整类名,例如:
```
-Djava.class.path=your_class_path YourJavaClassName
```
7. 在项目属性的“配置属性”中选择“调试”,并将“工作目录”设置为包含 Java 类的目录。
8. 在项目属性的“配置属性”中选择“调试”,并将“调试器类型”设置为“本地 Windows 调试器”。
9. 在项目属性的“配置属性”中选择“调试”,并将“启动操作”设置为“启动外部程序”。
10. 在项目属性的“配置属性”中选择“调试”,并将“附加到”设置为“指定的进程”。
11. 在项目属性的“配置属性”中选择“调试”,并将“附加到”设置为“Java.exe”。
12. 在项目属性的“配置属性”中选择“调试”,并将“符号文件”设置为“是”。
13. 在项目属性的“配置属性”中选择“调试”,并将“调试信息格式”设置为“程序数据库 (/Zi)”。
14. 在项目属性的“配置属性”中选择“调试”,并将“调试优化”设置为“否 (/Od)”。
15. 在项目属性的“配置属性”中选择“调试”,并将“代码生成”设置为“多线程调试 DLL (/MDd)”。
16. 在项目属性的“配置属性”中选择“事件”,并在“后期生成事件”中添加以下命令:
```
copy $(TargetDir)$(TargetName).pdb $(SolutionDir)$(ProjectName)\$(Configuration)\
```
17. 编译项目并生成 DLL 文件。
18. 在命令行中运行 Java 类,并在需要调试时使用“附加到进程”功能进行在线调试。
希望这些步骤能够帮助您编译并在线调试 JNI 程序。
阅读全文