Рейджсон больше не работает после перехода на компиляцию ZigC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Рейджсон больше не работает после перехода на компиляцию Zig

Сообщение Anonymous »

Я недавно переключил свой проект C ++ с компиляции с Cmake на компиляцию с Zig, чтобы упростить кросс-компиляцию, но, похоже, это каким-то образом сломало Рапиджсон. Я пытался ссылаться на систему, включите каталог (

Код: Выделить всё

/usr/include
), но это создает чрезвычайно длинную Stacktrace ошибок во время компиляции, поэтому я скопировал каталог Rapidjson оттуда в каталог Local, после чего он скомпилировал без ошибок. Это функция, которая бросает ошибку во время выполнения: < /p>

Код: Выделить всё

using namespace std;
using namespace rapidjson;

void LoadJSONFile(string location, Document& doc) {
ifstream ifs(location);
string json((istreambuf_iterator(ifs)), istreambuf_iterator());

doc.Parse(json.c_str());
}
Вот ошибка/стек трассировки:
thread 229006 panic: applying non-zero offset 16 to null pointer
./include/rapidjson/internal/stack.h:117:13: 0x1358a37 in Reserve (utils.cpp)
./include/rapidjson/internal/stack.h:123:9: 0x135898c in Push (utils.cpp)
./include/rapidjson/document.h:2355:47: 0x135badd in StartObject (utils.cpp)
./include/rapidjson/reader.h:593:13: 0x1355970 in ParseObject (utils.cpp)
./include/rapidjson/reader.h:1398:23: 0x13542a0 in ParseValue (utils.cpp)
./include/rapidjson/reader.h:501:13: 0x1353594 in Parse (utils.cpp)
./include/rapidjson/document.h:2157:40: 0x1352d89 in ParseStream (utils.cpp)
./include/rapidjson/document.h:2222:16: 0x1352af6 in Parse (utils.cpp)
./include/rapidjson/document.h:2231:16: 0x1352a4c in Parse (utils.cpp)
./include/rapidjson/document.h:2238:16: 0x134dfbc in Parse (utils.cpp)
/home/lexicled/Programming/Games/Raylib/station/utils.cpp:101:9: 0x13484f7 in LoadJSONFile (utils.cpp)
doc.Parse(json.c_str());
^
/home/lexicled/Programming/Games/Raylib/station/ResourceLocator.cpp:12:5: 0x11c4e5c in ResourceLocator (ResourceLocator.cpp)
LoadJSONFile(loc, data);
^
< /code>
Это соответствующий раздел сценария, который я использую для компиляции (пропущенные все имена файлов, так как их есть несколько, и они не имеют значения): < /p>
SRC=...
INCLUDE="-I./include"
LIB_LINUX="-L/usr/lib -lraylib -L/usr/lib -lGL -lm -lpthread -ldl -lrt -lX11"

zig c++ $SRC \
-target x86_64-linux-gnu \
-lc \
$INCLUDE $LIB_LINUX \
-o $OUTFILE_LINUX
< /code>
Я вывел строку json, прежде чем анализировать ее (где происходит ошибка), и все выглядит хорошо. Прочитанный файл также не изменился с тех пор, как я начал мигрировать с Cmake, в этот момент он работал нормально.
Рапиджсон просто совместим с Zig по какой -то причине (я не могу найти много онлайн об обоих) или это то, что я делаю неправильно? Чтобы не было, я решил проблему, просто обновив Rapidjson через восхитительный магистр Git Branch!

Подробнее здесь: https://stackoverflow.com/questions/797 ... ompilation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»