构建 .dll 时未找到 GCC 选项

Posted

技术标签:

【中文标题】构建 .dll 时未找到 GCC 选项【英文标题】:GCC option not found while constructing .dll 【发布时间】: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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于构建 .dll 时未找到 GCC 选项的主要内容,如果未能解决你的问题,请参考以下文章

构建新的 Azure Fabric 服务时未找到清单文件

使用 pyinstaller 构建 exe 时未找到 APScheduler pytz-deprecation-shim

构建 iOS 框架时未找到 Ktor 和 kotlinx 依赖项

构建发布和调试 apk 时未找到 Firebase Auth AndroidX 依赖项

lua 5.1 package.loadlib 和要求。 gcc 构建 windows dll

构建解决方案时未构建 Visual Studio 特定项目