qthree
Т.е. вся строка EXPORTED...=[] воспринимается как файл, потому ругается что длинное имя файла
Cat
я к тому, что после -s не может быть значений, потому что это просто флаг
Anonymous
Видимо автор думал, что это аргумент для другой команды
Маjко
А что ты сбилдить пытаешься? Закрытый код?
qthree
Стоп, а ты какой командой проект собираешь?
Viknet
Этот флаг вообще не для gcc, а для emcc предназначается
qthree
Должно быть cargo web build или я что то не понимаю? Он его пытается под x86_64-unknown-linux-gnu собрать, не?
qthree
И поэтому cc не понимает -s флаг предназначенный для emcc
qthree
И ALLOW_MEMORY_GROWTH вообще не нужен, если cargo-web обновить он по умолчанию включен
Anonymous
Этот флаг вообще не для gcc, а для emcc предназначается
Скорее всего, но emcc --help не знает про него ничего
Viknet
Скорее всего, но emcc --help не знает про него ничего
Я, может, что-то не так прочитал, но здесь про него говорится: https://kripken.github.io/emscripten-site/docs/optimizing/Optimizing-Code.html
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
получается, не через cargo build собирается?
qthree
cargo точно не умеет wasm/asm.js собирать
Anonymous
так а у тебя предыдущий пайплайн-то есть?
Нет ничего вообще. Есть только несколько файлов с кодом и конфиг карго
Cat
гениально
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
qthree
если это конечно что то самостоятельное, если модуль для npm или еще что - не в курсе
Anonymous
теперь делай cargo web start
Что-то запустилось, но по ссылке ожидаемая белая страница, поскольку это лишь часть проекта, и я запустил её сепаратнно от всего проекта. И видимо там что-то важное не подсосалось
Αλεχ
ну на этом твои обязанности заканчиваются
Αλεχ
раз собралось - значит взятки гладки
Cat
странная у вас компания, которая нанимает девопса, но не предоставляет банального существующего пайплайна (хоть даже если он и ручной)
Αλεχ
мб чел этот пайплайн щас и делает
Αλεχ
откуда ты знаешь?
Cat
мб чел этот пайплайн щас и делает
ну так он даже не знает, как запускать проект
Anonymous
ну на этом твои обязанности заканчиваются
Если бы. Теперь надо создать какой-то таргет для gulp что бы пересборка этой балалайки делалась удалённо по команде gulp что-нибудь
qthree
ну так у тебя в target/asmjs-unknown-emscripten/debug должно все нужное лежать
Αλεχ
грустно)
Anonymous
ну так у тебя в target/asmjs-unknown-emscripten/debug должно все нужное лежать
Я так и подмуал, но надеялся, что оно ляжет в место покрасивше
Cat
"у нас тут 10 языков в кучу, собери-ка чтобы всё было по одной кнопке"
Cat
Я так и подмуал, но надеялся, что оно ляжет в место покрасивше
в карго-гайде на первой странице же написано, что путь будет target/toolchain/name
qthree
ну если ты с —release запустишь cargo web build то будет в папке release а не debug
Anonymous
"у нас тут 10 языков в кучу, собери-ка чтобы всё было по одной кнопке"
Именно так. Бэкенд на питоне, с вкраплениями независимых компонентов на Java, фронт на js со всеми возможными фрэймворками, а теперь ешё и с емскриптоном для которого код на расте =)
Cat
и ты даже не пообщался с программистами
Cat
шок
qthree
если собирешь с —release —target=wasm32-unknown-unknown то будет в /target/wasm32-unknown-unknown/release
Anonymous
и ты даже не пообщался с программистами
Общался, но не по этой задаче. Тут мне главный техдир выдал задачу и сказал разбираться.
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
а хотя бы в том, чтобы (хоть как-нибудь) собрать
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/" ?
Anonymous
и js-обертка от stdweb
Лучше wasm-bindgen если не сильно завязан на DOM
qthree
ну тогда уж и wasm-pack
Cat
если это бинарь поверх библиотеки, то чем extern crate плох?
Filipp
эм.. use path::to::module;?
Так не работает. Когда отдельный бинарь компилится, он внешние модули не видит
(((Sergey(not seresha))
А чем плох extern crate?
Маjко
Так не работает. Когда отдельный бинарь компилится, он внешние модули не видит
Динамическое связывание только, если у тебя там бинари И C FFI
Cat
есть человеческий способ (без extern crate) использовать модули проекта из файлов в "bin/" ?
импорт собственной библиотеки это нормально, в го это возведено в абсолют /offtop
Маjко
Если в bin просто крейты лежат -- добавь в них в src/ lib.rs с экспортами Будут и либами и бинарями одновременно, можно будет extern crate
Cat
он не хочет extern crate
Маjко
он не хочет extern crate
Ну сорян, другой крейт можно только так
Маjко