错误:
| Working tree | Object Store
------|--------------------------------|--------------------------------
#ths | Regex 1 | Regex 2 | Regex 1 | Regex 2
------|---------------|----------------|----------------|---------------
32 | 3.29s ± 0.21 | 4.30s ± 0.01 | 6.30s ± 0.01 | 7.30s ± 0.02
16 | 3.19s ± 0.20 | 4.14s ± 0.02 | 5.91s ± 0.01 | 6.83s ± 0.01
8 | 2.90s ± 0.04 | 3.82s ± 0.20 | 5.70s ± 0.02 | 6.53s ± 0.01
4 | 2.84s ± 0.02 | 3.77s ± 0.20 | 6.19s ± 0.02 | 7.18s ± 0.02
2 | 3.73s ± 0.21 | 5.57s ± 0.02 | 9.28s ± 0.01 | 11.22s ± 0.01
1 | 7.48s ± 0.02 | 11.36s ± 0.03 | 17.75s ± 0.01 | 21.87s ± 0.08
部分代码:
/home/mike/Documents/PROJECTS/BUN/blib/bun/impl/DbBackend.hpp:61:21: error: expected primary-expression before ‘try’
try {
^~~
/home/mike/Documents/PROJECTS/BUN/blib/bun/impl/DbBackend.hpp:67:21: error: expected ‘,’ or ‘;’ before ‘catch’
catch (std::exception const &except) {
^~~~~
In file included from blib/bun/bun.hpp:3:0,
from main.cpp:12:
Makefile:
bool connect(std::string const &in_params) {
const auto backend_factory =
#ifdef BUN_SQLITE
soci::sqlite3;
#elif defined(BUN_POSTGRES)
soci::postgresql;
#elif defined(BUN_MYSQL)
soci::mysql;
#endif
try {
if (!_ok) {
_sql_session.open(backend_factory, in_params);
_ok = true;
}
}
catch (std::exception const &except) {
l().error(except.what());
_ok = false;
}
return _ok;
}
soci::session &session() {
return _sql_session;
}
};
我正在尝试使用Bun orm。在我的程序中,我仅包含bun.hpp文件。我不明白尝试之前编译器不行吗?也许是因为尝试以上的LDFLAGS := -L/usr/local/lib \
-I/home/mike/Documents/PROJECTS/BUN/third_party/unqlite -I/home/mike/Documents/PROJECTS/BUN -I/home/mike/Documents/PROJECTS/BUN/third_party
# LDLIBS := -lpthread -lresolv
EXECUTABLE := main
# CXXFLAGS=-g -std=c++11 -Wall
CXXFLAGS=-g -std=c++17 -Wall
all: $(EXECUTABLE)
clean:
rm -f $(EXECUTABLE) *.o
运算符?此外,它还表示希望在抓到之前#ifdef
或,
……
我正在尝试使用Ubuntu 18.04
答案 0 :(得分:4)
您的编译行未定义任何选项(除非它们来自文件内部或其他标头),因此您将获得:
bool connect(std::string const &in_params) {
const auto backend_factory =
try {
要确认,您可以在g ++行中添加“ -E”以获取预处理器之后的源代码。
另一种可能性是您要定义多个。
您总是可以#undef
其中2个和#define
最后一个来查看其是否以此方式编译(仅作为测试)。
答案 1 :(得分:0)
尝试删除所有#def宏并仅保留其中一个并检查其是否可以编译,例如const UsageDescription
如果可以编译,则意味着您没有在代码中定义这3个def之一。