我试图编译一些C代码,它在Linux上运行良好,只需一个命令即可。
./autogen.sh && ./configure && make
我需要对windows进行编译,所以我安装了cygwin和我能想到的所有依赖项,现在我得到了一个编译错误。(make错误)。
-cpu-miner.o `test -f 'cpu-miner.c' || echo './'`cpu-miner.c
cpu-miner.c: In function ‘miner_thread’:
cpu-miner.c:1056:139: error: ‘MAP_HUGETLB’ undeclared (first use in this function)
persistentctx = (struct cryptonight_ctx *)mmap(0, sizeof(struct cryptonight_ctx), PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB | MAP_POPULATE, 0, 0);
^
cpu-miner.c:1056:139: note: each undeclared identifier is reported only once for each function it appears in
cpu-miner.c:1056:153: error: ‘MAP_POPULATE’ undeclared (first use in this function)
persistentctx = (struct cryptonight_ctx *)mmap(0, sizeof(struct cryptonight_ctx), PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB | MAP_POPULATE, 0, 0);
^
cpu-miner.c:1058:88: error: ‘MADV_HUGEPAGE’ undeclared (first use in this function)
madvise(persistentctx, sizeof(struct cryptonight_ctx), MADV_RANDOM | MADV_WILLNEED | MADV_HUGEPAGE);
^
make[2]: *** [Makefile:563: minerd-cpu-miner.o] Error 1完整的代码在这里:https://github.com/wolf9466/cpuminer-multi
我安装了Cygwin与gcc,明-W64,libcurl和openssl,如项目的依赖关系,但我在这里被难住了。
(我确实对优化代码进行了修改,但它们是数学上的调整,在Linux上工作得很好,所以我不认为这是问题所在。)
编辑1
它现在就编译!我删除了hugepages的内容,并进行了编译--但是它是一个具有.exe文件名的Linux可执行文件。它需要cygwin dlls来运行。
发布于 2016-07-09 01:13:35
这个"hugepage“特性是特定于Linux的,在Cygwin中是不可用的。
https://stackoverflow.com/questions/38277297
复制相似问题