我使用给定的标志<div class="wrapper">
<!-- HEADER, SAME ON ANY SITE -->
<div class="header">
<header>
<h1>Oblivion</h1>
<p>Headline</p>
</header>
<div class="hr"></div>
<nav>
<!-- Codepen.io cant handle links, so i disabled them -->
<a href="#" id="active">home</a>
<a href="#">info</a>
<a href="#">roster</a>
<a href="#">more...</a>
</nav>
<div class="hr"></div>
</div>
<!-- HEADER END -->
<div class="main">
<div class="content">
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
<p>TEST 123</p>
</div>
</div>
</div>
编译我的代码,并且我得到各种错误,描述我应该使用相同的标志。此外,$get_thoughts_from_db = mysqli_query($connect, "SELECT * FROM user_thoughts INNER JOIN users ON user_thoughts.added_by = users.username ON ORDER BY id DESC"); // newest posts first
无法识别为类型。
生成文件:
-std=c++11
我得到的警告和错误:
auto
现在我的问题是:我应该怎样做才能让g ++在给定标志的情况下清楚地认识到这一点?
我也尝试用GCCPATH = /path/gcc/5.3.0
CC = $(GCCPATH)/bin/g++
DARGS = -ggdb #debug arguments
CARGS = -std=c++11 #C arguments
WARGS = -Wall -Wextra #warning arguments
AARGS = $(DARGS) $(CARGS) $(WARGS) #all arguments
GCCLIBPATH = $(GCCPATH)/lib64
LIBS = -l curl
LIBD = -L $(GCCLIBPATH) -Wl,-rpath=$(GCCLIBPATH)
.PHONY: webspider
webspider: ../title/htmlstreamparser.o filesystem.o
$(CC) $(AARGS) -o $@ $@.cpp $+ $(LIBS) $(LIBD)
filesystem:
$(CC) $(AARGS) -c $@.cpp
替换它,但没有用。
编辑:
完整输出warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
warning: range-based ‘for’ loops only available with -std=c++11 or -std=gnu++11
error: ‘weblink’ does not name a type
for(auto weblink: weblinks)
:
-std=c++0x
答案 0 :(得分:5)
问题是您没有指定所有依赖项,特别是如何构建所有中间目标文件。
所以会发生什么,make
制定了自己的规则,并在你不看的时候无形地偷偷溜进去。
控制这些implicit rules的方法是设置正确的predefined variables:
CXX := $(GCCPATH)/bin/g++ # c++ compiler
CPPFLAGS := -I/path/to/headers # preprocessor flags
CXXFLAGS := -std=c++11 # compiler flags
LDFLAGS := -L/path/to/libs # linker flags
LDLIBS := -lcurl # libraries to link
# etc...
通过使用正确的预定义变量,而不是自己制作变量,可以在构建Makefile
时节省大量工作。
答案 1 :(得分:0)
最后,根据评论,通过更改
来修复filesystem:
$(CC) $(AARGS) -c $@.cpp
到
filesystem.o: filesystem.cpp
$(CC) $(AARGS) -c $+
因为Makefile不明白我试图使用规则filesystem.o
制作filesystem: ...
。当明确说明时,它按预期工作。
这种方法优于Galik的答案是能够使用自己的变量,虽然在这种情况下没有那么大的优势,因为它是一个小项目。