Linux上的Mosync编译失败

时间:2012-03-20 00:44:30

标签: c++ mobile compilation mosync

我正在尝试编译MoSync,但会收到以下错误。 我在mosync论坛上四处看了看但找不到任何东西......

$ ./workfile.rb CONFIG="debug"

Hook directories are equal.
Set constant "CONFIG"="debug"
/home/elijah/code/MoSync/mosync_trunk/intlibs/idl-common []
get_gcc_version_string(gcc)
GCC version: "4.6.1"
GCC_IS_V4: true
GCC sub-version: 6
/home/elijah/code/MoSync/mosync_trunk/intlibs/filelist []
/home/elijah/code/MoSync/mosync_trunk/tools/idl2 ["compile"]
/home/elijah/code/MoSync/mosync_trunk/intlibs/profiledb []
/home/elijah/code/MoSync/mosync_trunk/intlibs/helpers/platforms/linux []
/home/elijah/code/MoSync/mosync_trunk/intlibs/bluetooth []
In /home/elijah/code/MoSync/mosync_trunk/intlibs/bluetooth
Because file does not exist:
Execute: build/debug/bluetoothbluez.o
gcc -o "build/debug/bluetoothbluez.o" -std=gnu++0x -DHAVE_TR1 -fno-rtti -g -O0 -fvisibility=hidden -I "/home/elijah/code/MoSync/mosync_trunk/runtimes/cpp/base" -I "/home/elijah/code/MoSync/mosync_trunk/runtimes/cpp/platforms/sdl" -I "/home/elijah/code/MoSync/mosync_trunk/intlibs" -I "/home/elijah/code/MoSync/mosync_trunk/libs" -Wall -Werror -Wextra -Wno-unused-parameter -Wwrite-strings -Wshadow -Wpointer-arith -Wundef -Wfloat-equal -Winit-self -Wmissing-noreturn -Wmissing-format-attribute -Wvariadic-macros -Wmissing-include-dirs -Wmissing-declarations -Wvla -Wlogical-op -DBLUEZ_SUPPORTED -DLINUX -fPIC -MMD -MF "build/debug/bluetoothbluez.mft" -c "/home/elijah/code/MoSync/mosync_trunk/intlibs/bluetooth/linux/bluez/bluetoothbluez.cpp"
In file included from /home/elijah/code/MoSync/mosync_trunk/intlibs/bluetooth/linux/bluez/bluetoothbluez.hpp:29:0,
                 from /home/elijah/code/MoSync/mosync_trunk/intlibs/bluetooth/linux/bluez/bluetoothbluez.cpp:35:
/home/elijah/code/MoSync/mosync_trunk/intlibs/bluetooth/linux/bluez/cbtdevice.hpp: In constructor ‘CBtDevice::CBtDevice(const MABtAddr*, const char*)’:
/home/elijah/code/MoSync/mosync_trunk/intlibs/bluetooth/linux/bluez/cbtdevice.hpp:56:34: error: converting to non-pointer type ‘char’ from NULL [-Werror=conversion-null]
/home/elijah/code/MoSync/mosync_trunk/intlibs/bluetooth/linux/bluez/bluetoothbluez.cpp: In member function ‘void Bluetooth::BlueZ::BluetoothBluez::discoverDevices(Bluetooth::MABtCallback, bool)’:
/home/elijah/code/MoSync/mosync_trunk/intlibs/bluetooth/linux/bluez/bluetoothbluez.cpp:470:26: error: converting to non-pointer type ‘char’ from NULL [-Werror=conversion-null]
/home/elijah/code/MoSync/mosync_trunk/intlibs/bluetooth/linux/bluez/bluetoothbluez.cpp:476:71: error: passing NULL to non-pointer argument 5 of ‘int hci_read_remote_name(int, const bdaddr_t*, int, char*, int)’ [-Werror=conversion-null]
cc1plus: all warnings being treated as errors

Error: Command failed, code 1
/home/elijah/code/MoSync/mosync_trunk/rules/error.rb:19:in `error': Command failed, code 1 (RuntimeError)
    from /home/elijah/code/MoSync/mosync_trunk/rules/util.rb:101:in `sh'
    from /home/elijah/code/MoSync/mosync_trunk/rules/util.rb:92:in `popen'
    from /home/elijah/code/MoSync/mosync_trunk/rules/util.rb:92:in `sh'
    from /home/elijah/code/MoSync/mosync_trunk/rules/gcc.rb:81:in `execute'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:199:in `invoke'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:244:in `invoke'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:196:in `invoke'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:196:in `each'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:196:in `invoke'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:244:in `invoke'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:85:in `invoke'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:85:in `each'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:85:in `invoke'
    from /home/elijah/code/MoSync/mosync_trunk/intlibs/bluetooth/workfile.rb:44
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:138:in `load'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:138:in `invoke_subdir_ex'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:147:in `invoke_subdirs_ex'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:147:in `each'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:147:in `invoke_subdirs_ex'
    from /home/elijah/code/MoSync/mosync_trunk/rules/task.rb:144:in `invoke_subdirs'
    from ./workfile.rb:115
    from /home/elijah/code/MoSync/mosync_trunk/rules/targets.rb:35:in `call'
    from /home/elijah/code/MoSync/mosync_trunk/rules/targets.rb:35:in `invoke'
    from /home/elijah/code/MoSync/mosync_trunk/rules/targets.rb:122:in `invoke'
    from /home/elijah/code/MoSync/mosync_trunk/rules/targets.rb:118:in `each'
    from /home/elijah/code/MoSync/mosync_trunk/rules/targets.rb:118:in `invoke'
    from ./workfile.rb:190

有谁知道为什么会发生这些错误?

P.S。对于linux atm,moSync图像/音频capcha已被破坏,这就是我在这里构成的原因......

编辑:所有平台的moSync图像/音频capcha都完全被破坏了...... gah。

1 个答案:

答案 0 :(得分:0)

我猜你首先编译mosync“gcc”分支。然后编译mosync sdk。 见这里:http://www.mosync.com/documentation/manualpages/building-mosync-source-linux

我使用g https://github.com/fredrikeldh/MoSync-gcc3和mosync sdk https://github.com/fredrikeldh/MoSync。在ubuntu 12.04 x86_64中成功编译。

记得在docs上看到linux.txt:

这些软件包是在Xubuntu 11.10上构建MoSync所必需的:

1.9可能有效,但没有保证。

ruby​​1.8的

克++ libsdl1.2-dev的 libbluetooth-dev的 的libssl-dev的 libexpat1-dev的

libglew1.5-dev也应该可以工作。

libglew1.6-dev的

libgtk2.0-dev的 libsdl-image1.2-dev的 libsdl-ttf2.0-dev的 libfreeimage-dev的

用于管道工具。似乎仅在Ubuntu 11.04及更低版本上可用/需要。

的libc6-DEV-I386 lib32z1-dev的

的gperf