qthree
Т.е. вся строка EXPORTED...=[] воспринимается как файл, потому ругается что длинное имя файла
Cat
Cat
я к тому, что после -s не может быть значений, потому что это просто флаг
Anonymous
Видимо автор думал, что это аргумент для другой команды
Маjко
А что ты сбилдить пытаешься?
Закрытый код?
qthree
Стоп, а ты какой командой проект собираешь?
Anton
Viknet
Этот флаг вообще не для gcc, а для emcc предназначается
qthree
Должно быть cargo web build или я что то не понимаю? Он его пытается под x86_64-unknown-linux-gnu собрать, не?
qthree
И поэтому cc не понимает -s флаг предназначенный для emcc
Anonymous
qthree
И ALLOW_MEMORY_GROWTH вообще не нужен, если cargo-web обновить он по умолчанию включен
Anonymous
Anonymous
Да, упоминается, что через него какие-тодополнительные аргументы передаются, но про сам ключ нифига нет
qthree
Просто сделай "cargo install cargo-web —force" а потом в папке с проектом cargo web build
qthree
Скорее всего, но emcc --help не знает про него ничего
"-s OPTION=VALUE"
JavaScript code generation option passed into the Emscripten
compiler. For the available options, see src/settings.js.
Note: For options that are lists, you need quotation marks (")
around the list in most shells (to avoid errors being raised).
Two examples are shown below:
-s RUNTIME_LINKED_LIBS="['liblib.so']"
-s "RUNTIME_LINKED_LIBS=['liblib.so']"
You can also specify that the value of an option will be read from
a specified JSON-formatted file. For example, the following option
sets the "DEAD_FUNCTIONS" option with the contents of the file at
path/to/file.
-s DEAD_FUNCTIONS=@/path/to/file
Note: * In this case the file might contain a JSON-formatted list
of
functions: "["_func1", "func2"]".
* The specified file path must be absolute, not relative.
Cat
Cat
получается, не через cargo build собирается?
qthree
cargo точно не умеет wasm/asm.js собирать
Cat
гениально
qthree
qthree
cargo-web умеет собирать wasm с помощью llvm или wasm/asm.js с помощью emscripten, читай https://github.com/koute/cargo-web
qthree
cargo build без .cargo/config и без —target просто нативный исполняемый файл пытается собрать под твою платформу, разумеется у него это не получается
Anonymous
тебе уже написали что делать надо
Да, уже сделал, что-то оно похоже собрало. На этот раз все ошибки были только уровня warning, даже та про аргументы:
warning: unused attribute
--> src/main.rs:2:1
|
2 | #[link_args = "-s ALLOW_MEMORY_GROWTH=1 -s EXPORTED_FUNCTIONS=['_init','_queue_precedent','_link_precedents','_unlink_precedents','_has_precedents','_has_dependents','_print_precedents','_print_dependents','_output_precedents','_output_dependents','_next_output_position_hash','_next_output_case_number','_remove_case','_remove_node','_clear_tables','_hash_for_cell_reference','_add_iteration_starting_case','_start_iteration','_add_bfs_starting_node','_start_bfs','_next_bfs_position_hash','_next_bfs_case_number']"]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: #[warn(unused_attributes)] on by default
Finished dev [unoptimized + debuginfo] target(s) in 26.16 secs
Anonymous
Но вот код не появился нигде, кроме подкаталога debug
qthree
теперь делай cargo web start
Cat
qthree
если это конечно что то самостоятельное, если модуль для npm или еще что - не в курсе
Anonymous
теперь делай cargo web start
Что-то запустилось, но по ссылке ожидаемая белая страница, поскольку это лишь часть проекта, и я запустил её сепаратнно от всего проекта. И видимо там что-то важное не подсосалось
Αλεχ
ну на этом твои обязанности заканчиваются
Αλεχ
раз собралось - значит взятки гладки
Cat
странная у вас компания, которая нанимает девопса, но не предоставляет банального существующего пайплайна (хоть даже если он и ручной)
Αλεχ
мб чел этот пайплайн щас и делает
Αλεχ
откуда ты знаешь?
Cat
qthree
ну так у тебя в target/asmjs-unknown-emscripten/debug должно все нужное лежать
Αλεχ
Αλεχ
грустно)
Anonymous
Anonymous
Cat
"у нас тут 10 языков в кучу, собери-ка чтобы всё было по одной кнопке"
qthree
ну если ты с —release запустишь cargo web build то будет в папке release а не debug
Cat
и ты даже не пообщался с программистами
Cat
шок
qthree
если собирешь с —release —target=wasm32-unknown-unknown то будет в /target/wasm32-unknown-unknown/release
Anonymous
Anonymous
Ну как сказать, на самом деле там похоже не всё как надо собралось. По крайней мере результат не удовлетворил нашего главного.
Anonymous
we've also figured out that the project is webasm-based, so default cargo build is not suitable, cargo web build should be used
Cat
Cat
а хотя бы в том, чтобы (хоть как-нибудь) собрать
Anonymous
Ну да, хоть как-нибудь собралось, собрало веб-сервер свой локальный, а вот на счёт искомого скрипта нифига непонятно. Впрочем с меня сняли эту задачку.
RS
так в target же лежит
Cat
небось имеется в виду JS скрипт
RS
так оно же вроде бинарник должно выдать, потом подключаешь сам где надо
Cat
какой-нибудь third-party JS скрипт*
qthree
если таргет asmjs то по идеи js должен лежать готовый обернутый и готовый к работе в браузере
qthree
если wasm то бинарник
qthree
и js-обертка от stdweb
(((Sergey(not seresha))
Можно прогуглить экземплы
Filipp
есть человеческий способ (без extern crate) использовать модули проекта из файлов в "bin/" ?
qthree
ну тогда уж и wasm-pack
Cat
Cat
если это бинарь поверх библиотеки, то чем extern crate плох?
(((Sergey(not seresha))
А чем плох extern crate?
Маjко
Cat
Маjко
Если в bin просто крейты лежат -- добавь в них в src/ lib.rs с экспортами
Будут и либами и бинарями одновременно, можно будет extern crate
Cat
он не хочет extern crate
Маjко