小编Ral*_*ner的帖子

创建使用getaddrinfo的静态链接二进制文件?

我已经包含了标题netdb.h,包含在哪里getaddrinfo,但是gcc发出了这个警告:

warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

gcc -m32 -static -s -O2 -std=c99 -D_POSIX_C_SOURCE=200112L myprogram.c
Run Code Online (Sandbox Code Playgroud)

如何静态编译丢失的文件?

可能的解决方案:

  1. 可能是glibc安装缺少静态编译所需的相应目标文件.如果是这种情况,请创建相应的目标文件并在编译时链接它.

  2. 尝试EGLIBC而不是glibc.

  3. 我成功地用dietlibc编译了我的程序,它编译时没有任何错误加上得到的二进制文件比glibc制作的要小得多.

c gcc posix c99 static-linking

28
推荐指数
2
解决办法
3万
查看次数

R 3.5不适用于Linux

似乎截至2018年4月28日,R 3.5在任何镜像中都不适用于Linux.最新的r-base-core适用于3.4.4,请参见下图中的一个镜像.同时我能够为Windows安装R 3.5.你知道为什么最新的R不适用于Linux吗?

r镜子的快照显示最新的r

r

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

向联盟施放常数

以下代码:

#include <stdio.h>

typedef union {
   int   n;
   char *s;
} val_t;

int main(void) {
  val_t v1,v2;

  v1 = (val_t)"Hello World";
  v2 = (val_t)10;

  printf("%s %d\n", v1.s, v2.n);
  return(1);
}
Run Code Online (Sandbox Code Playgroud)

使用gcc正确编译和执行.如果试图转换一个常量,而且联合中没有合适的字段,则会产生错误消息.

但是,查看(C99)标准,我无法找到描述此行为的部分.因此,我的问题:

如果联合类型的字段具有兼容类型,那么C标准是否保证我可以将常量强制转换为联合类型?

或者,换句话说:

((val_t)10)一个有效的rvalue类型val_t

了解其他编译器(或至少MS Visual C++)是否支持此行为也很有趣.有人知道吗?

编辑:转换为联盟是一个GCC扩展,所以使用它不是一个好主意.

感谢Maurits和Neil!我没想过用-pedantic检查!

c types casting

15
推荐指数
2
解决办法
2060
查看次数

当从R调用时,Libreoffice给出"应用程序错误"

在docker容器内我试图使用LibreOffice将XLSX文件转换为PDF.相关命令在命令行上工作,但在从R调用时失败并显示"Application Error".我使用此命令Dockerfile添加一些(根据我的经验任意)XLSX文件:

FROM rocker/r-ver:3.4.3

RUN apt-get update \
 && apt-get install --yes --no-install-recommends \
    default-jre-headless libreoffice-calc \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/* \
 && echo /usr/lib/libreoffice/program > /etc/ld.so.conf.d/libreoffice.conf \
 && ldconfig

COPY foo.xlsx /tmp
Run Code Online (Sandbox Code Playgroud)

(诀窍ldconfig来自 R中系统函数的共享库问题.)

在命令行上,我可以将XLSX文件转换为PDF:

root@b395caeba33b:/# loffice --headless --convert-to pdf /tmp/foo.xlsx 
convert /tmp/foo.xlsx -> //foo.pdf using filter : calc_pdf_Export
Run Code Online (Sandbox Code Playgroud)

然而,这从R失败:

> system("loffice --version")
LibreOffice 5.2.7.2 20m0(Build:2)

> system("loffice --headless --convert-to pdf /tmp/foo.xlsx")
convert /tmp/foo.xlsx -> //foo.pdf using filter : calc_pdf_Export …
Run Code Online (Sandbox Code Playgroud)

r libreoffice docker

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

在R Bookdown中的每个GitBook样式的Web章节之后重新开始尾注编号

我正在准备一本历史书籍手稿,用Bookdown撰写的R-Markdown,将有8章,每章有100多个芝加哥风格的尾注,使用GitBook风格的网页格式.

我的目标是在每章之后重新开始尾注编号,以避免遇到高位数并且类似于传统历史书籍的外观.

我已经尝试了这里描述的大多数设置(https://bookdown.org/yihui/bookdown/html.html#gitbook-style),但无法生成所需的Web输出.这是我的index.Rmd的相关部分:

output:
  bookdown::gitbook:
    dev: svglite
    css: css/style.css
    split_by: rmd
    split_bib: true
Run Code Online (Sandbox Code Playgroud)

请参阅我的简化模型演示:https: //jackdougherty.github.io/bookdown-test/book/ 和源代码:https: //github.com/JackDougherty/bookdown-test

r-markdown bookdown

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

文件 ../MatrixOps/cholmod_sdmult.c,第 90 行中的 Cholmod 错误“X 和/或 Y 的尺寸错误”

它只是报告:

Cholmod 错误“X 和/或 Y 的尺寸错误”位于文件 ../MatrixOps/cholmod_sdmult.c,第 90 行。

我不知道为什么。

    x.m <- data.matrix(train[,c(1:43)])
    x.m [is.na(x.m)] <- 0
    y.m <- train$NPL
    cv.m <-data.matrix(cv)
    set.seed(356)


    cvfit.m.lasso = cv.glmnet(x.m, y.m, 
                      family = "binomial", 
                      alpha = 1,
                      type.measure = "class")
    par(mfrow=c(1,2))
    plot(cvfit.m.lasso, main = "Lasso")
    coef(cvfit.m.lasso, s = "lambda.min")
    predTrain.M = predict(cvfit.m.lasso, newx=cv.m, type="class")
    table(cv$NPL, predTrain.M)
Run Code Online (Sandbox Code Playgroud)

r glmnet

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

如何在Alpine headless chrome中使用中文?

我在docker下使用基于 alpine:3.7 图像的无头镀铬。但是,当我使用 Chrome DevTools Protocol 截取屏幕截图时,我发现 alpine 无法显示除英语以外的语言,如下面的屏幕截图所示。

我试图将字体复制到 docker 图像

COPY NotoSansCJKsc-Regular.otf /usr/share/fonts/
Run Code Online (Sandbox Code Playgroud)

并尝试在 alpine 源中安装字体:

RUN apk add --no-cache bash \
ttf-ubuntu-font-family \
font-adobe-100dpi \
font-noto \
ttf-dejavu \
Run Code Online (Sandbox Code Playgroud)

但是所有的方法都失败了。所以我的问题是Alpine支持中文吗?以及如何使用 Docker 使用它?

截取屏幕截图的python代码:

COPY NotoSansCJKsc-Regular.otf /usr/share/fonts/
Run Code Online (Sandbox Code Playgroud)

错误中文页面

fonts docker dockerfile alpine-linux

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

我在RStudio中找不到"Knit"按钮

我安装了RStudio Desktop windows版本来学习课程,我必须编写一个特定的RMD文件.我安装了包括"knitr"在内的所有软件包,但我仍然无法在界面中找到编织按钮. 截图

r rstudio knitr

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

R-markdown 自包含

我正在使用 R-markdown 来编写一些报告。我用独立的图形来做,因为我通过电子邮件发送它。

这一直有效直到最近。但现在图像不再显示(方框中出现十字错误)。可能是我更新了RStudio的版本。我在脚本的顶部使用了这个:

---
title: "blablablab"
author: "blablablab"
output:
html_document:
fig_caption: yes
toc: no
toc_depth: 2
toc_float: no
number_sections: false
self_contained: yes
---
Run Code Online (Sandbox Code Playgroud)

我知道这个问题不是很具体。我只是想问是否有人也有独立的图形,但突然不再工作了。

我在这里先向您的帮助表示感谢!

问候丹尼

r r-markdown

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

导出到 R 中列表的 JSON 列表

我需要将一个列表列表导出到 json 以获得类似下一个的输出 JSON:

{
  "timestamp":"2018-02-01 10:20",
  "aux":[
    {"id":"x1","prog":['A','A','A']},
    {"id":"x2","prog":['A','A','A']},
    {"id":"x3","prog":['A','A','A']}
  ]
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能制作一个列表来获得这样的 JSON?提前致谢。

编辑:

这就是我正在尝试的:

l1 <- list(timestamp = "2018-02-01 10:20", 
           aux = list(id = c("x1","x2","x3"), 
           prog = rep('A',3)))
Run Code Online (Sandbox Code Playgroud)

这是我得到的 JSON:

{"timestamp":"2018-02-01 10:20",
 "aux":{"id":["x1","x2","x3"],
        "prog":["A","A","A"]}
}
Run Code Online (Sandbox Code Playgroud)

json r list

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