可能我们平时有遇到客户的需求是调用别人封装的DLL去得到相关的硬件设备信息,这个时候我们怎么去解决这个问题?
可以从以下几个方面去解决:
第一步:下载安装Mingw64(因为mingw64可以选择使用32位或64位编译)
说明:编译C/C++代码编译器
下载地址:http://mingw-w64.sourceforge.net/
第二步:下载CDT:
下载地址:http://www.eclipse.org/downloads/
说明:选择Eclipse IDE for C/C++ developer Windows
第三步:配置CDT的C/C++环境(DLL)(以Mingw32为例)
假设Mingw32的安装在C:/mingw32目录下,具体操作如下:
Eclipse菜单栏 - Window - Preferences - 在弹出的Preferences 窗口中展开左侧C/C++项 - 单机C/C++项中的Environment -
单击Preferences窗口右侧的Add...按钮 - 在弹出的New varilable窗口的Name输入框中输入PATH - 在Value输入框中输入C:\mingw32\bin - 单击下方的ok按钮 -
单击Preferences窗口右侧的Add...按钮 - 在弹出的New varilable窗口的Name输入框中输入LIBRARY_PATH - 在Value输入框中输入C:\mingw32\lib - 单击下方的ok按钮 -
单击Preferences窗口右侧的Add...按钮 - 在弹出的New varilable窗口的Name输入框中输入C_INCLUDE_PATH - 在Value输入框中输入C:\mingw32\include - 单击下方的ok按钮 -
单击Preferences窗口右侧的Add...按钮 - 在弹出的New varilable窗口的Name输入框中输入CPLUS_INCLUDE_PATH - 在Value输入框中输入C:\mingw32\include;C:\mingw32\include\c++\4.8.2;C:\mingw32 \include\c++\4.8.2\i686-w64-mingw32;C:\mingw32\include\c++\4.8.2\backward;C:\mingw32\lib\gcc\i686-w64-mingw32\4.8.2\include - 单击下方的ok按钮 -
单击Preferences窗口右侧下方的Apply按钮 - 单击ok按钮(如果不想进行其它设置,只单击ok按钮即可)
到此,Eclipse已经能够启动并且能够按照我们设置的路径找到C/C++代码的编译器了。
重新启动Eclipse
Eclipse菜单栏 - File - New - C++ Project(或C Project)- 在Project name输入框中输入自定义的工程名(如Test)- 取消窗口下方对“Show project types and toolchains only if they are supported on the platform”项的默认选中 - 在C++ Project窗口中间左侧的Project type中的Executable项下选择Hello World C++ Project(或Hello World ANSI C Project) - 在Toolchains窗口中选择MinGW GCC - 单击Finish按钮 - 展开Project Explorer窗口中出现了的新项目(如Test)- 双击src下的*.cpp(如Test.cpp)文件 - 可以看到系统已经自动生成了一些代码 - Ctrl + B编译这个项目 - 然后运行。
第四步:使用cross gcc编程so(可选)
右键新建项目,选择cross gcc
填写cross compiler prefix,每种编译器有不同的前缀*-gcc.exe,这里的*就是它的前缀
填写cross compiler path,这里填写编译器的bin目录,例如:D:\Program Files\mingw-w64\x86_64-5.2.0-posix-seh-rt_v4-rev0\mingw64\bin
把mingw32-make.exe复制为make.exe
错误信号:https://msdn.microsoft.com/en-us/library/ms681382%28v=vs.85%29.aspx
相关推荐
### Java_JNI编程进阶 #### 一、引言 JNI (Java Native Interface) 技术作为Java语言的重要补充,在解决特定场景下的性能瓶颈、本地平台接口调用以及嵌入式开发等方面扮演着不可或缺的角色。本文旨在深入探讨JNI...
8. **线程管理**:JNI支持多线程编程,可以在本地代码中创建和管理线程,并与Java线程进行交互。需要注意的是,由于Java和本地线程模型的差异,线程同步和资源管理需要特别小心。 9. **异常处理**:JNI提供了检查和...
在这个“java_jni_mytest.tar.gz_android_jni”压缩包中,包含了一个专门为初学者准备的Android JNI编程实例,帮助开发者更好地理解和应用JNI技术。 首先,让我们了解JNI的基本概念。JNI是Java平台标准的一部分,它...
JNI(Java Native Interface)是Java平台提供的一种标准接口,它允许Java代码和其他...通过学习和实践这些JNI编程资料,初学者可以掌握JNI的基本原理和操作,从而在实际项目中灵活运用,实现Java与本地代码的高效协同。
这个过程涉及到了Java和C++的混合编程,需要对两种语言有深入的理解,并且熟悉JNI提供的接口。在实际应用中,开发者还需要考虑多线程、内存管理、错误处理等多个方面的问题,以确保代码的稳定性和效率。
标题《Java_JNI_编程进阶.pdf》表明本文档将深入探讨Java Native Interface(JNI),这是Java语言中用于与本地应用程序接口(API)交互的标准编程接口。描述部分指出,由于Java的跨平台特性,它不能直接访问操作系统...
Java本地调用接口JNI(Java Native Interface)是Java平台中用于连接Java代码和本地(非Java)代码的一个标准机制。...学习这些内容有助于开发者深入理解Java与本地代码的交互机制,提高跨平台编程的能力。
JNI是一种Java编程接口,它为Java虚拟机(JVM)提供了与本地代码交互的能力。通过JNI,开发者可以在Java程序中调用C/C++函数,或者让C/C++代码调用Java方法。这种能力使得Java可以利用已有的C/C++库,提高性能或...
JNI,全称Java Native Interface,是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。JNI在很多场景下都是必要的,比如当需要利用已有的C/C++库,或者需要提升性能时,我们通常会借助JNI来实现...
### Java与JNI结合获取系统进程...通过以上分析,我们不仅理解了如何利用JNI技术在Java环境中获取系统级信息,还深入探讨了跨语言编程的具体实现细节,这对于进一步开发高性能、功能丰富的Java应用程序具有重要意义。
Java本地接口(JNI,Java Native Interface)是Java平台标准的一部分,它允许Java代码与其他..."jni.pdf"这本书籍应该会详细讲解这些内容,对Java开发者尤其是需要进行系统级编程的开发者来说,是一份宝贵的参考资料。
- JNI编程需要谨慎处理内存管理和线程安全,因为本地代码可能与多个Java线程同时交互。 - 本地方法应尽可能简洁,避免长时间运行,以减少Java虚拟机(JVM)和本地代码之间的上下文切换开销。 - 使用`...
7. **错误处理**:在JNI编程中,错误处理非常重要,因为错误通常不会像Java那样抛出异常,而是通过返回值或全局错误状态来指示。 8. **线程安全**:如果JNI方法在多线程环境中使用,需要确保线程安全,因为Java和...
- 数据类型的转换是JNI编程中的关键部分,例如将Java对象转换为本地指针,或将本地数据结构转换为Java对象。 4. **调用Java方法和访问字段**: - `CallXXXMethod`系列函数用于调用Java对象的方法,根据方法的...
3. **头文件生成**:JNI编程开始时,我们需要使用`javah`工具从Java类中导出本地方法的头文件。这个头文件包含了C/C++代码中需要的函数原型。 4. **本地方法实现**:在C/C++环境中,根据生成的头文件编写本地方法的...
在IT领域,JNI(Java Native Interface)是一种标准的编程接口,允许Java代码和其他语言写的代码进行交互。这个“testjni.rar”压缩包包含了一个关于如何使用C或C++调用Java方法的示例。让我们深入了解一下这个过程...
手册还强调了对Java平台安全模型的理解以及在JNI环境下进行多线程编程的经验对于掌握JNI编程是很有帮助的。 总之,Java程序设计与JNI手册是一份适合Java和C/C++程序员的参考资料,为开发者提供了一个全面了解JNI的...
它涵盖了JNI编程、Android NDK开发、原生代码与Java代码的交互、串口通信协议以及Android权限管理等多个方面的知识。对于需要进行Android硬件扩展或进行嵌入式开发的工程师来说,这是一个非常有价值的参考案例。
LTP4J的核心在于其提供的静态库(parser_jni.lib)和动态库(如parser_jni.dll),这些库文件是C++编写的底层实现,通过JNI(Java Native Interface)技术与Java代码进行交互。JNI允许Java代码直接调用C/C++的函数,...