我目前正在做this项目。我使用cxxopts.hpp来解析cli选项,但是自从我添加了它,我得到了一些错误,我现在列出了如何重现:
1.构建项目
meson build
cd build
ninja
1.到目前为止一切都很好,它建立没有任何错误。
1.除了test/vector.cpp
和test/random.cpp
(这是我使用cxxopts.hpp
的地方)之外,我可以修改任何东西,并使用ninja
构建,没有任何问题。
1.然后当我编辑test/vector.cpp
或test/random.cpp
并执行ninja
时,出现以下错误:
[1/4] Compiling C++ object test/random.p/random.cpp.o
FAILED: test/random.p/random.cpp.o
c++ -Itest/random.p -Itest -I../test -I../include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Wpedantic -O0 -g -MD -MQ test/random.p/random.cpp.o -MF test/random.p/random.cpp.o.d -o test/random.p/random.cpp.o -c ../test/random.cpp
In file included from ../include/cxxopts.hpp:43,
from ../test/random.cpp:6:
test/vector:1:1: error: stray ‘\177’ in program
1 | <U+007F>ELF<U+0002><U+0001><U+0001><U+0003><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0003><U+0000>><U+0000><U+0001><U+0000><U+0000><U+0000> F<U+0000><U+0000><U+0000><U+0000><U+0000><U+0000>@<U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><90><91><U+0015><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000>@<U+0000>8<U+0000><U+000D><U+0000>@<U+0000>(<U+0000>'<U+0000><U+0006><U+0000><U+0000><U+0000><U+0004><U+0000><U+0000><U+0000>@<U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000>@<U+0000><U+0000><U+0000><U+0000>...
(a very lengthy error up to 400 MB in a file)
我如何解决这个问题,或者为什么会发生这种情况?
1条答案
按热度按时间t30tvxxf1#
正如KamilCuk在他们的评论中指出的那样,这个错误是由标准库
#include <vector>
和我从vector.cpp
创建的二进制vector
之间的名称冲突引起的。更改二进制文件的名称可以解决这个问题。
也可以通过将选项
implicit_include_directories
设置为false
来实现所需的行为,如下所示: