Это потому, что вы должны передать функцию, а не строку:
function funcName() {
alert("test");
}
setInterval(funcName, 10000);
В вашем коде две проблемы:
var func = funcName();
немедленно вызывает функцию и назначает возвращаемое значение. "func"
, даже если вы используете плохой и устаревший эквивалентный синтаксис setInterval. Было бы setInterval("func()", 10000)
вызывать функцию eval-like. Попробуйте установить:
export CFLAGS="-m32"
export LDFLAGS="-m32"
перед компиляцией ...
Не могли бы вы попробовать эту серию команд и посмотреть, работает ли она? Теоретически, если вы предоставили llvm-gcc с опцией -m32, эти шаги должны быть предприняты llvm-gcc, но, возможно, он работает некорректно, поэтому давайте сделаем все шаги явными:
llvm-gcc -m32 -emit-llvm test.c -c -o test.bc
llc test.bc -march=x86 -o test.S
gcc test.S -m32 -o test
Это должна быть последовательность шагов (или что-то в этом роде аналогично), что llvm-gcc работает неявно, но похоже, что в вашем случае он по какой-то причине генерирует 64-битную сборку, а затем пытается собрать и связать ее для 32-битной.
У меня была та же проблема, llvm-gcc игнорирует флаги, единственное решение, которое сработало, - переключиться с llvm-gcc на clang, который уважает -m32. Это или переключитесь на 32-битную операционную систему для работы llvm-gcc.