我有一个可以在 Ubuntu 上毫无问题地编译的项目。 https://github.com/avalon-lang/avaloni/blob/master/Makefile 处的 Makefile是我正在努力适应 Windows 10 的那个。
我安装了 MingW-w64 和 GNU Make-32。
当我针对 Makefile 运行 make 时,传递给编译器的 CFLAGS 和其他标志不会显示,在回显输出中留下空格而不是编译器标志。因此,找不到成功编译所需的文件。
我尝试用它们的内容替换变量 CFLAGS、SYSINC 和 INC,但没有任何改变。它们只是被忽略,就好像 make 删除了它们一样。
cc := g++
cflags := -std=c++11 -g -Wall -pedantic -DDEBUG -fopenmp
ldpaths := -LC:/Boost/lib
rdpaths := -Wl,-rpath=C:/Boost/lib
ldflags := -lboost_filesystem-mgw81-mt-x64-1_68 -lboost_system-mgw81-mt-x64-1_68 -fopenmp
src_dir := src
inc := -Isrc -Ideps/qpp
sysinc := -isystem deps/boost -isystem deps/eigen
build_dir := build
bin_dir := bin
target := $(bin_dir)/avaloni.exe
src_ext := cpp
sources := $(shell dir $(src_dir)\*.$(src_ext) /b /s)
objects := $(patsubst $(src_dir)\%,$(build_dir)\%,$(sources:.$(src_ext)=.o))
install_dir := C:/Avalon
sdk_path := C:/Avalon/AvalonSdk
.PHONY: all
all: setup $(target)
$(target): $(objects)
$(cc) $^ -o $(target) $(ldpaths) $(ldflags) $(rdpaths)
$(build_dir)\%.o: $(src_dir)\%.$(src_ext)
@if not exist "$(dir $@)" mkdir $(dir $@)
$(cc) $(cflags) $(sysinc) $(inc) -c -o $@ $< #!!! This is the problem line.
在编译过程中,我希望有如下一行:
g++ -std=c++11 -g -Wall -pedantic -DDEBUG -fopenmp -isystem deps/boost -isystem deps/eigen -Isrc -Ideps/qpp -c -o file.o file.cpp
但是我得到:
g++ -c -o file.o file.cpp
最佳答案
这样做的原因是 (a) 您正在使用非标准变量来保存您的编译器标志,并且 (b) 您的模式规则不匹配。
由于 (b),make 选择了用于创建目标文件的内置规则,并且由于 (a),内置规则中没有使用您的标志。
您的模式规则不匹配的原因是 GNU make 不支持路径名中的反斜杠。您必须在所有规则中使用正斜杠:
$(build_dir)/%.o: $(src_dir)/%.$(src_ext)
...
关于windows - Make 忽略了编译器标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53891476/
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
我知道您通常应该在Rails中使用新建/创建和编辑/更新之间的链接,但我有一个情况需要其他东西。无论如何我可以实现同样的连接吗?我有一个模型表单,我希望它发布数据(类似于新View如何发布到创建操作)。这是我的表格prohibitedthisjobfrombeingsaved: 最佳答案 使用:url选项。=form_for@job,:url=>company_path,:html=>{:method=>:post/:put} 关于ruby-on-rails-rails:Howtomak
我知道我可以指定某些字段来使用pluck查询数据库。ids=Item.where('due_at但是我想知道,是否有一种方法可以指定我想避免从数据库查询的某些字段。某种反拔?posts=Post.where(published:true).do_not_lookup(:enormous_field) 最佳答案 Model#attribute_names应该返回列/属性数组。您可以排除其中一些并传递给pluck或select方法。像这样:posts=Post.where(published:true).select(Post.attr
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
我想这样组织C源代码:+/||___+ext||||___+native_extension||||___+lib||||||___(Sourcefilesarekeptinhere-maycontainsub-folders)||||___native_extension.c||___native_extension.h||___extconf.rb||___+lib||||___(Rubysourcecode)||___Rakefile我无法使此设置与mkmf一起正常工作。native_extension/lib中的文件(包含在native_extension.c中)将被完全忽略。
我不知道为什么,但是当我设置这个设置时它无法编译设置:static_cache_control,[:public,:max_age=>300]这是我得到的syntaxerror,unexpectedtASSOC,expecting']'(SyntaxError)set:static_cache_control,[:public,:max_age=>300]^我只想将“过期”header设置为css、javaascript和图像文件。谢谢。 最佳答案 我猜您使用的是Ruby1.8.7。Sinatra文档中显示的语法似乎是在Ruby1.
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
在读取/解析文件(使用Ruby)时忽略某些行的最佳方法是什么?我正在尝试仅解析Cucumber.feature文件中的场景,并希望跳过不以Scenario/Given/When/Then/And/But开头的行。下面的代码有效,但它很荒谬,所以我正在寻找一个聪明的解决方案:)File.open(file).each_linedo|line|line.chomp!nextifline.empty?nextifline.include?"#"nextifline.include?"Feature"nextifline.include?"Inorder"nextifline.include?
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路