海湾合作委员会没有find胜利build设者

海湾合作委员会没有find胜利build设者,第1张

概述海湾合作委员会没有find胜利build设者

我已经构build了一个包含C / C ++代码的R包。 我现在试图在win-builder上testing这个包。 不幸的是,在00install.out返回以下错误:

* installing *source* package 'mypackage' ... ** libs running 'src/Makefile.win' ... /usr/bin/make --directory=lib/mylib/ gcc -g -Wall -fPIC -c mycode.c make[1]: gcc: Command not found make[1]: *** [mycode.o] Error 127 make: *** [mylib] Error 2 Warning: running command 'make --no-print-directory -f "Makefile.win"' had status 2 ERROR: compilation Failed for package 'mypackage' * removing 'd:/RCompile/CRANguest/R-release/lib/mypackage'

尝试使用gcc , gcc.exe和cc产生类似的结果。

因此,我根据这些指示在windows虚拟机上build立了一个testing环境。 运行R CMD INSTALL . 在这个环境中的命令行代码导致代码编译和软件包安装没有问题。 (运行R CMD build .也没有错误。)

怎么了赢得build设者,我怎样才能达到汇编呢?

有没有一种简单的方法来使gcc忽略crtbegin.o / crtend.o?

编译器有关printf()的警告:long unsigned int和uint32_t

无法升级windows 7中的MinGW

用非标准path编译glib

如何在LD_PRELOAD中使用gdb

或者更重要的是,能够在windows上构build包是否足够,无论它是否在win-builder上工作?

我的Makefile.win如下所示:

export CCOMP = gcc export CPPCOMP = c++ export ADD_CC_FLAGS = -O3 APP_DIR = ./apps/myapp liB_DIR = ./lib/mylib .PHONY: all $(APP_DIR) $(liB_DIR) all: $(APP_DIR) $(liB_DIR) $(APP_DIR) $(liB_DIR): mylib $(MAKE) --directory=$@ $(APP_DIR): $(liB_DIR) mylib mylib: $(MAKE) --directory=lib/mylib

将echo %PATH%插入到mylib目标下的make文件中:

Makefile.win:24: *** missing separator. Stop.

gdb可以自动在SIGSEGV上附加一个进程

windows上的MinGW + GCC和UTF-8字符

在* nix下有没有别的办法可以用gcc做实际的开发?

_GliBCXX_USE_CXX11_ABI,兼容GCC 4.8和ABI

格式化struct timespec

你在这里得到一个模糊的错误,因为你包含了一个文件Makefile.win 。

但make的语义,如果找到这样的文件,它将被使用…这不是你想要的。 R建立它自己的 Makefile.win ,你应该只提供一个被包含的代码片段 – 必须被称为Makevars.win 。

这是第一条规则。 第二条规则是不包含你将包含在Makefile所有材料,因为你会打破R已经带来的东西。 所有这一切都在写作R扩展,但当然可以更清楚。

我的务实建议是:拿一个你知道和喜欢的包,在win-builder中有一个可用的R build,然后修改它。 你可以在本地测试,如果你有Rtools等访问R系统。

从OP编辑 :

我需要编译依赖于几个库的可执行文件。 库代码在src/libs ,可执行代码在src/apps 。 我确保在每个子目录中运行make ,并将src/apps/Makefile为使用相对路径来获取src/libs的结果。 唯一的问题是,整个链条运行。 为此,我创建了一个具有以下结构的文件src/Makevars.win :

.PHONY: all myprogram sublib1 sublib2 all: sublib1 sublib2 myprogram myprogram: sublib1 sublib2 @(cd apps/myprogram && $(MAKE) CXX="$(CXX)" CC="$(CC)" CFLAGS="$(CFLAGS) $(CPICFLAGS)" AR="$(AR)" RANliB="$(RANliB)") sublib1: @(cd lib/sublib1 && $(MAKE) CXX="$(CXX)" CC="$(CC)" CFLAGS="$(CFLAGS) $(CPICFLAGS)" AR="$(AR)" RANliB="$(RANliB)") sublib2: @(cd lib/sublib2 && $(MAKE) CXX="$(CXX)" CC="$(CC)" CFLAGS="$(CFLAGS) $(CPICFLAGS)" AR="$(AR)" RANliB="$(RANliB)")

据我了解, Makevars.win被嵌入到R生成的动态生成的Makefile中。 所以, $(CC)实际上是引用这个隐藏的代码。

(有可能更聪明的方法来做到这一点。)

总结

以上是内存溢出为你收集整理的海湾合作委员会没有find胜利build设者全部内容,希望文章能够帮你解决海湾合作委员会没有find胜利build设者所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1257081.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存