纯数据外部创建的 Eclipse 设置

Eclipse setup for Pure Data external creation

好的,所以我一直在使用 Visual Studio Express 2013 为 Pure Data 开发外部组件,一切都很顺利。一切都编译,工作等等。

但现在我不得不为 Android(与 libPD 一起使用)进行外部的特定编译,这意味着我将不得不使用 Android NDK。我找到的所有 NDK 指南都使用 Eclipse,因此我决定将代码导入 Eclipse 并开始使用它。

我之前在 Android dev 的一些尝试中安装了 Eclipse,这意味着我只需要安装 Make、Gcc 和 Gdb。通过 Cygwin 这样做,重新启动 Eclipsed,一切似乎都工作正常(当试图编译一个空项目时,所有调用都没有错误地进行并且项目编译)。

已将基本 "helloworld" 项目源导入到新创建的 Eclipse C 项目中,并在尝试包含 "m_pd.h" 时出现(如预期)错误。在 google 和 eclipse 文档中搜索库包含,在包含路径、库路径(链接器-> 库设置)中尝试它,除了将它添加到包含中之外,无法让它与任何其他解决方案一起工作小路。将 Pure Data src 文件夹添加到项目的包含路径,错误消失了。

但是,当我尝试编译项目时,所有 PD 方法和函数都会出现未定义的引用错误(post、pd_new、gensym 等),这表明编译器正在无法正确到达图书馆...

作为一个 Eclipse 新手,我想知道我是否错过了某些步骤或者我是否做错了什么......

内部和外部编译器似乎都会发生相同的错误。外部 (cygwin gcc) 在链接阶段显示错误(在 "Invoking: Cygwin C Linker" 行之后)

更新:在我将包含路径添加到 cygwin 链接器库路径后,编译错误消失了。 现在 makefile 命令出现 "syntax error near unexpected token `('" 错误: gcc -shared -o "dataIn.dll" ./src/dataIn.o -lC:/Program\ Files\ (x86)/Pure\ Data/src

是不是因为路径中的那个“(”变得奇怪了?

gcc 和 GNU make 在处理包含路径中的空格方面享有盛誉。

简短的回答是:不要!

很容易将 Pd 解压缩到一个合理的地方,它不包含空格、括号、星号和可怕的 AUX。例如

C:\Pd\

郑重声明,如果有人偶然发现这个问题,问题出在使用 Cygwin,因为它需要一个 dll (cygwin1.dll) 才能 运行 用它编译的任何东西。 最终切换到使用 MingW,一切正常。

Umlaute 关于文件路径和目录的建议对于确保正确编译也非常重要。