【问题标题】:GCC option not found while constructing .dll构建 .dll 时未找到 GCC 选项
【发布时间】:2014-02-05 00:43:24
【问题描述】:

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

我在构建(全部)时收到“未知选项:--add-stdcall-alias”。我正在使用 Mac GCC 编译器。这是我的控制台日志和生成文件:

编辑:所以我删除了给我错误的选项并且我的构建工作。但是,仅删除一行我一无所知的代码,我就感到不安全。有人想告诉我删除此代码的含义吗?

控制台输出: 18:05:33 ** 构建配置默认项目 HPA* 测试 * 做所有 javah -classpath ../bin HPAProgram gcc -Wl,--add-stdcall-alias -shared -o hpaprogram.dll HPAProgram.o ld:未知选项:--add-stdcall-alias clang:错误:链接器命令失败,退出代码为 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

【问题讨论】:

    标签: java c++ eclipse gcc makefile


    【解决方案1】:

    我按照同一个教程练习,结果去掉“-Wl,--add-stdcall-alias”就可以了。

    顺便说一句,在 Mac 中,您必须使用“.dylib”而不是“.so”,否则您将收到错误消息“java.lang.UnsatisfiedLinkError: no hello in java.library。路径”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      • 2018-04-01
      • 2014-09-30
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多