Я пытаюсь скомпилировать демо-версию Bullet от John McCucatchan github [1] без успеха. Предварительные файлы в этом репозитории предназначены для сборки только NaClAMBullet и NaClAMTest. Поэтому я модифицирую premake64.lua для нацеливания NaClAMBullet вместо NaClAMTest. Но это не сработало.Премия для цели NaClAMBullet
local nacl_sdk_path = os.getenv("NACL_SDK_ROOT")
local nacl_toolchain_path = os.getenv("NACL_SDK_BIN")
local bullet_path = os.getenv("BULLET_ROOT")
premake.gcc.cc = nacl_toolchain_path .. "/x86_64-nacl-gcc"
premake.gcc.cxx = nacl_toolchain_path .. "/x86_64-nacl-g++"
premake.gcc.ar = nacl_toolchain_path .. "/x86_64-nacl-ar"
solution "NaClAM"
configurations { "Debug", "Release" }
project "NaClAMBase64"
kind "StaticLib"
language "C++"
files {
"NaClAMBase/*.cpp",
}
includedirs { nacl_sdk_path .. "/include" }
configuration "Debug"
defines { "DEBUG" }
flags { "Symbols" }
targetdir "premake/lib/debug"
buildoptions { "-std=gnu++0x -fno-rtti -fno-exceptions -m64 -msse2" }
configuration "Release"
defines {"NDEBUG"}
flags {"Optimize"}
targetdir "premake/lib/release"
buildoptions { "-std=gnu++0x -fno-rtti -fno-exceptions -m64 -msse2" }
project "NaClAMBullet64"
kind "ConsoleApp"
language "C++"
files {
"NaClAMBullet/*.cpp",
}
includedirs { "." }
includedirs { bullet_path }
includedirs { "/include" }
includedirs { nacl_sdk_path .. "/include" }
links { "NaClAMBase64", "m", "pthread", "ppapi" }
configuration "Debug"
defines { "DEBUG" }
flags { "Symbols" }
targetdir "premake/bin/debug"
targetextension ".nexe"
buildoptions { "-std=gnu++0x -fno-rtti -fno-exceptions -m64 -msse2" }
configuration "Release"
defines {"NDEBUG"}
flags {"Optimize"}
targetdir "premake/bin/release"
targetextension ".nexe"
buildoptions { "-std=gnu++0x -fno-rtti -fno-exceptions -m64 -msse2" }
Для создания Makefile я просто запустить следующую строку:
premake4 --file=premake64.lua gmake
И построить приложение, просто введите:
make -R
В результате этих операций является следующий сборник погрешность:
==== Building NaClAMBullet64 (debug) ====
Creating obj/Debug/NaClAMBullet64
NaClAMBullet.cpp
NaClAMBullet/NaClAMBullet.cpp: In function ‘void handleStepScene(const NaClAMMessage&)’:
NaClAMBullet/NaClAMBullet.cpp:336:40: error: call of overloaded ‘Value(uint64_t&)’ is ambiguous
root["simtime"] = Json::Value(delta);
^
NaClAMBullet/NaClAMBullet.cpp:336:40: note: candidates are:
In file included from ./NaClAMBase/NaClAMBase.h:18:0,
from NaClAMBullet/NaClAMBullet.cpp:4:
./NaClAMBase/json/json.h:559:7: note: Json::Value::Value(const Json::Value&)
Value(const Value &other);
^
./NaClAMBase/json/json.h:558:7: note: Json::Value::Value(bool)
Value(bool value);
^
./NaClAMBase/json/json.h:554:7: note: Json::Value::Value(const string&) <near match>
Value(const std::string &value);
^
./NaClAMBase/json/json.h:554:7: note: no known conversion for argument 1 from ‘uint64_t {aka long unsigned int}’ to ‘const string& {aka const std::basic_string<char>&}’
./NaClAMBase/json/json.h:541:7: note: Json::Value::Value(const char*) <near match>
Value(const char *value);
^
./NaClAMBase/json/json.h:541:7: note: no known conversion for argument 1 from ‘uint64_t {aka long unsigned int}’ to ‘const char*’
./NaClAMBase/json/json.h:540:7: note: Json::Value::Value(double)
Value(double value);
^
./NaClAMBase/json/json.h:538:7: note: Json::Value::Value(Json::Value::UInt64)
Value(UInt64 value);
^
./NaClAMBase/json/json.h:537:7: note: Json::Value::Value(Json::Value::Int64)
Value(Int64 value);
^
./NaClAMBase/json/json.h:535:7: note: Json::Value::Value(Json::Value::UInt)
Value(UInt value);
^
./NaClAMBase/json/json.h:534:7: note: Json::Value::Value(Json::Value::Int)
Value(Int value);
^
./NaClAMBase/json/json.h:533:7: note: Json::Value::Value(Json::ValueType) <near match>
Value(ValueType type = nullValue);
^
./NaClAMBase/json/json.h:533:7: note: no known conversion for argument 1 from ‘uint64_t {aka long unsigned int}’ to ‘Json::ValueType’
NaClAMBullet64.make:129: recipe for target 'obj/Debug/NaClAMBullet64/NaClAMBullet.o' failed
make[1]: *** [obj/Debug/NaClAMBullet64/NaClAMBullet.o] Error 1
Makefile:20: recipe for target 'NaClAMBullet64' failed
make: *** [NaClAMBullet64] Error 2
Что я делаю неправильно? Являются ли эти зависимости чем-то решаемым в прессовом файле или где-то еще?
Это репо довольно старый ... если вы хотите использовать Bullet, я бы предложил использовать версию в naclports (https://code.google.com/p/naclports/). – binji