当前位置: 首页 > 知识库问答 >
问题:

构造.dll时未找到GCC选项

干鑫鹏
2023-03-14

我正在尝试创建一个.dll,同时按照本教程(http://www3.ntu.edu.sg/home/ehchua/programming/java/javanativeinterface.html)在我的eclipse项目中使用JNI。但是,我的makefile有一个问题,可能与所有的JNI内容无关。

控制台输出:18:05:33**生成项目HPA的配置默认值*测试*make all javah-classpath../bin HPAProgram gcc-wl,--add-stdcall-alias-shared-o HPAProgram.dll HPAProgram.o ld:未知选项:--add-stdcall-alias clang:Error:链接器命令失败,退出代码为1(使用-v查看调用)make:**[HPAProgram.dll]错误1

18:05:34 Build Finished (took 823ms)

生成文件:

# Define a variable for classpath
CLASS_PATH = ../bin

# Define a virtual path for .class in the bin directory
vpath %.class $(CLASS_PATH)

all : hpaprogram.dll

# $@ matches the target, $< matches the first dependancy
hpaprogram.dll : HPAProgram.o
    gcc -Wl,--add-stdcall-alias -shared -o $@ $<

# $@ matches the target, $< matches the first dependancy
HPAProgram.o : HPAProgram.c++ HPAProgram.h
    gcc -I /System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/ -c $< -o $@

# $* matches the target filename without the extension
HPAProgram.h : HPAProgram.class
    javah -classpath $(CLASS_PATH) $*

clean :
    rm HPAProgram.h HPAProgram.o hpaprogram.dll

共有1个答案

陆海阳
2023-03-14

我通过遵循相同的教程进行练习,结果发现去掉“-wl,--add-stdcall-alias”是可以的。

顺便说一句,在Mac中,您必须使用“.dylib”而不是“.so”,否则您将错误地说“java.lang.unsatisfiedLinkError:no hello in java.library.path”。

 类似资料:
  • 我的php_统计。dll始终提供 在Apache错误日志中。 我在Windows 10 64位机器中设置了XAMPP 32位。带有XAMPP的PHP(也是32位,上周下载的最新版本)。 由于Windows安全PHP_不得不安装到D驱动器stats.dll-所有版本从1.0.5到2.0.3,所有32位,非线程安全和线程安全再次尝试下载上周(是的,我也尝试了64位版本) php_统计。dll位于D:/

  • Spring靴和jpa给出了错误 项目的github链接https://github.com/dishankgoyal/springsBoot/tree/master/faculty_project

  • 问题内容: 我的MyBatis映射有问题。我有一个像这样的领域类: 一个映射器类,具有如下方法: 在数据库中,三列的类型分别为Number,Timestamp和Clob,并且名称与类字段中的名称相同。 当我使用此方法时,我得到一个: ExecutorException:在[MyClass;中找不到构造函数。 匹配[java.math.BigDecimal,java.sql.Timestamp,or

  • 我有一个web api和一个应用程序。所以我想注册一个应用程序,但我有一个问题。我使用azure。这是我的registerapi(接口) 还有我的主要活动。java页面 我没有得到改造404没有找到。

  • 我已经创建了一个maven项目,我将使用一个。已由某人创建的jar文件。我已经将它添加到类路径中并使用了它,并且在eclipse中没有显示任何错误。但是当我尝试清理构建项目时,有一个错误如下。 [错误]无法执行目标组织。阿帕奇。专家插件:maven编译器插件:3.2:在项目DigitalWallet上编译(默认编译):编译失败:编译失败:[错误]/E:/DigitalWallet\u V0。1/D

  • 我在一些设备上面临这个问题,并在崩溃分析中出错。很多用户设备都面临这个问题,但在我的设备上运行良好。 无法启动活动ComponentInfo{com.ox.outloks.new/com.ox.outloks.new.activities.maindraweractivity}:Android.support.v4.app.fragment$instantiationexception:无法实例化