小编sco*_*007的帖子

ZMQError:无法分配请求的地址

我正在使用 Zeromq 开发一个动态应用程序,其操作类似于 upnp 协议(客厅设备的自动配置和自动发现)。为此,我使用 Zeromq 来分发消息,我的问题是,当我创建套接字并绑定到地址“169.254.1.0 到 169.254.254.255”时,我收到如下错误消息:ZMQError: Cannot allocate requested address

我试图通过本地地址(127.0.0.1)更改地址来找出原因,并且它有效!问题是我正在实现 autoip,这意味着我必须使用 169.254.1.0 到 169.254.254.255 范围内的地址。

在此先感谢您的帮助!

zeromq

9
推荐指数
2
解决办法
8075
查看次数

错误:函数'create_proc_read_entry'的隐式声明[-Werror = implicit-function-declaration]

我正在尝试在内核3.13上编译内核模块,我收到此错误:

error: implicit declaration of function 'create_proc_read_entry' [-Werror=implicit-function-declaration] 
Run Code Online (Sandbox Code Playgroud)

我谷歌它并没有找到任何回应.以下是引用此错误的代码部分:

#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
    proc = proc_net_create(KAODV_QUEUE_PROC_FS_NAME, 0, kaodv_queue_get_info);
#else
    proc = create_proc_read_entry(KAODV_QUEUE_PROC_FS_NAME, 0, init_net.proc_net, kaodv_queue_get_info, NULL);
#endif
    if (!proc) {
      printk(KERN_ERR "kaodv_queue: failed to create proc entry\n");
      return -1;
    }
Run Code Online (Sandbox Code Playgroud)

我可以得到帮助吗?我真的不知道出了什么问题.它可能是需要补丁的内核3.13.我在某处(在KERNEL 3.10上)读到内核需要补丁.任何人都可以告诉我在哪里可以得到3.13内核补丁,以最终解决问题.谢谢

c linux kernel-module linux-kernel

8
推荐指数
1
解决办法
3万
查看次数

发送消息Pid Erlang

我想知道,如何使用erlang发送消息进行处理.我确实启动了一个进程,输出显示pid <0.39.0>.我的问题是如何手动向此过程(<0.39.0>)发送消息.

任何帮助,将不胜感激

erlang pid message-passing erl

3
推荐指数
1
解决办法
2552
查看次数

LDFLAGS的意义是什么?

我正在尝试为ARM linux编译AODV.我使用SabreLite作为内核版本3.0.35_4.1.0的板.值得一提的是,我正在使用openembedded为我的主板创建Linux发行版.AODV源代码(http://sourceforge.net/projects/aodvuu/)有一个README文件,它提供了一些关于如何在ARM上安装它的指示.(http://w3.antd.nist.gov/wctg/aodv_kernel/kaodv_arm.html).

我能够升级makefile以便与2.6之后的内核版本一起使用(如上所述,我有3.0.35_4.1.0内核版本).所以,基本上,我要做的是我必须创建一个模块(比如说file.ko),然后将它加载到ARM中(使用insmod file.ko命令).

为此,我使用交叉编译器,其中的一些值如下所示:

  • echo $ CC:arm-oe-linux-gnueabi-gcc -march = armv7-a -mthumb-interwork -mfloat-abi = hard -mfpu = neon -mtune = cortex-a9 --sysroot =/usr/local/oecore- x86_64的/ sysroots/cortexa9hf-VFP氖-OE-Linux的gnueabi

  • echo $ ARCH = arm

  • echo $ CFLAGS:O2 -pipe -g -feliminate-unused-debug-types

  • echo $ LD:arm-oe-linux-gnueabi-ld --sysroot =/usr/local/oecore-x86_64/sysroots/cortexa9hf-vfp-neon-oe-linux-gnueabi

  • echo $ LDFLAGS:-Wl,-O1 -Wl, - hash-style = gnu -Wl, - as-needed -Wl, - as-needed

当我启动"make命令"时,我收到以下错误:

LD [M] /home/scof/script_emulation/AODV/aodv-uu/lnx/kaodv.o

arm-oe-linux-gnueabi-ld:无法识别的选项'-Wl,-O1'

arm-oe-linux-gnueabi-ld:使用--help选项获取用法信息

它表明链接器有问题.这个链接器来自交叉编译工具,我通常不应该触摸它.

无论如何,为了解决以上错误,我尝试撤消LDFLAGS,如下所示: export LDFLAGS ='',之后,make命令工作,我得到模块kaodv.ko.但是当我将它插入我的ARM进行检查时,它不起作用.它实际上冻结了我的终端

所以我的问题是,编译时是否必须指定LDFLAGS?撤销LDFLAGS是否会对生成的内核模块产生影响.实际上,我试图了解可能出现问题的地方,唯一能找到的是我不应该手动改变LDFLAGS.但如果我不改变de LDFLAGS,我会得到无法识别的选项错误.

我的第二个问题是,在ARM编译中LDFLAGS的可能值是什么

谢谢 !!

cross-compiling linux-kernel ldflags

1
推荐指数
1
解决办法
1万
查看次数