在 Windows 上使用 rebar 编译 NIF 项目
Posted
技术标签:
【中文标题】在 Windows 上使用 rebar 编译 NIF 项目【英文标题】:Compiling NIF project with rebar on Windows 【发布时间】:2015-07-05 15:54:35 【问题描述】:为了在 Windows 上运行我的第一个 NIF 项目,我遵循了以下步骤:
下载 Hellonif -master :https://github.com/vmx/hellonif
打开命令提示符(cmd):
2.1 cd C:\Users\Desktop\hellonif-master =>项目路径
2.2 SET PATH=C:\Program Files\C:\Program Files\erl6.4\bin => 脚本路径
将此行添加到 rebar.config:port_env, ["CC", "/C:/Program Files (x86)/CodeBlocks/MinGWp/bin/mingw32-gcc"]。
打开命令提示符(cmd)
4.1 钢筋编译
不幸的是,我遇到了这个错误:
hellonif-master (compile)
compiling C:\Users\Desktop\hellonif-master\c_src\hello.c
La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte.
你能帮我解决这个问题吗提前谢谢
【问题讨论】:
能否取消本地化错误信息? sorry for using french 这是错误信息的翻译:文件名、目录或卷的语法不正确。 【参考方案1】:您的CC
路径无效。标准的 windows 文件路径表示法是
"Drive:\dir\dir\file".
windows 也接受命令行级别的直斜杠,这给了你
"Drive:/dir/dir/file".
一些移植的 Linux 应用程序需要 mingw 或 cygwin 路径格式:
Mingw: "/drive/dir/dir/file"
Cygwin "/cygdrives/drive/dir/dir/file"
您的"/Drive:/dir/dir/file"
无效。
但是,您可以将 CC 路径添加到搜索路径列表 (PATH
),并使用标准的 cc
或 gcc
文件名进行编译(Mingw 提供这两个应用程序作为对 mingw32-gcc
的引用)
【讨论】:
谢谢 Lol4t0 的回答,我不明白第一个解决方案我应该在我的情况下放置什么路径。对于第二个解决方案,我添加了 C:/Program Files (x86)/ CodeBlocks/MinGWp/bin 到 PATH 但我有这个错误:“cl.exe 无法识别”。提前谢谢 试试"C:/Program Files (x86)/CodeBlocks/MinGWp/bin/gcc.exe"
或"/C/Program Files (x86)/CodeBlocks/MinGWp/bin/gcc.exe"
。不幸的是,第二个它想要cl
(即MSVC编译器),第二个你可以尝试额外设置CC=gcc
。
我试过“C:/Program Files (x86)/CodeBlocks/MinGWp/bin/gcc.exe”和“/C/Program Files (x86)/CodeBlocks/MinGWp/bin/gcc.exe “但仍然无法正常工作,我在此链接中读到:***.com/questions/15043040/… 我应该更改 CFLAGS 是否必须更改此变量??如果是这样如何更改这个变量(我的项目中没有 Makefile)以及这个变量的值是什么
如果您不想要,您不必更改 CFLAGS。 CFLAGS 只是编译器标志
当我像这里一样选择编译器时,编译器如何识别头文件erl_nif.h...这不是探针吗???以上是关于在 Windows 上使用 rebar 编译 NIF 项目的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能在使用 rebar3 生成的应用程序中运行 rebar3 命令?