Tag: gdc

使用D编程语言修复api

我正在尝试使用神经网络教自己AI。 简而言之,我想创建一个简单的图形,使用ncurses显示我的程序中发生的事情。 我正在使用的教程可以在这里找到。 我的印象是D与C兼容,理论上我可以相对容易地调用C函数。 我发现事实并非如此。 我是一个相对新手的程序员,所以即使是简单的解释也有点高于我的头脑。 我在这里找到了这个。 D旨在与目标系统的C编译器舒适地配合。 D通过依赖目标环境的C运行时库来弥补没有自己的VM。 尝试移植到D或为大量可用的C API编写D包装器将是毫无意义的。 直接调用它们要容易多少。 这是通过匹配C编译器的数据类型,布局和函数调用/返回序列来完成的。 听起来很棒。 有点过头了。 我测试了一个简单的C程序: #include int main(void) { int ch; initscr(); noecho(); cbreak(); printw(“Hit Ctrl+C to exit …\n\n”); for (;;) { ch = getch(); printw(“Value of char: %d (%02x)\n”, ch, ch); } endwin(); return 0; } 从SO上的另一个问题无耻地复制和粘贴。 至少我做了我的功课。 我从一个简单的D程序尝试了基本相同的东西。 我收到了这个错误: Error: module curses […]

ld选项-lrt引用什么库(Bionic libc)?

这个选项对ld意味着什么? -lrt 我知道在某种程度上它意味着ld正在寻找具有实时扩展的库,但是在广泛搜索之后,我找不到这是指的确切定义(或哪个库)。 使用Bionic(android)libc,android NDK docs详细说明了这个(以及pthreads)已经集成。 我问,因为它似乎是隐式的(即当我调用编译器时,直接调用自定义编译的gdc,我得到一条消息说ld找不到-lrt) 编辑 来自Bionic概述 Bionic的C库附带了自己的pthread实现。这与其他历史C库不同: – place it in an external library (-lpthread) – play linker tricks with weak symbols at dynamic link time 实时function(aka -lrt)的支持也捆绑在C库中。 问题是collect2将选项-lrt(以及-lpthreads)传递给ld。 dan@devbox:~/projects/gdc_test/jni/src$ $DC gdc_test.d -v -mthumb Using built-in specs. Target: arm-linux-androideabi Configured with: /arm/ndk-git/src/build/../gcc/gcc-4.4.3/configure –prefix=/arm/ndk-git/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86 –target=arm-linux-androideabi –host=x86_64-linux-gnu –build=x86_64-linux-gnu –with-gnu-as –with-gnu-ld –enable-languages=c,c++ –with-gmp=/arm/ndk-git/build_run/temp-install –with-mpfr=/arm/ndk-git/build_run/temp-install –disable-libssp […]