Cannot build on OSX 10.11.6
Opened this issue · 5 comments
Steps to reproduce:
git clone https://github.com/Kazade/kazmath.git
cd kazmath
mkdir build
cd build
cmake ..
make
produces:
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:53:34: warning: variadic
templates are a C++11 extension [-Wc++11-extensions]
template<typename T, typename... Args>
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:60:34: warning: variadic
templates are a C++11 extension [-Wc++11-extensions]
template<typename T, typename... Args>
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:96:5: error: exception
specification of overriding function is more lax than base version
~AssertionError() noexcept (true) {
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/stdexcept:76:13: note:
overridden virtual function is here
virtual ~logic_error() _NOEXCEPT;
^
In file included from /Users/jamiltron/opt/kazmath/tests/main.cpp:5:
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:96:22: error: expected ';'
at end of declaration list
~AssertionError() noexcept (true) {
^
;
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:85:9: error: member
initializer 'file' does not name a non-static data member or base class
file(""),
^~~~~~~~
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:91:9: error: member
initializer 'file' does not name a non-static data member or base class
file(file_and_line.first),
^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:121:13: warning: 'auto'
type specifier is a C++11 extension [-Wc++11-extensions]
auto file_and_line = std::make_pair(file, line);
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:129:13: warning: 'auto'
type specifier is a C++11 extension [-Wc++11-extensions]
auto file_and_line = std::make_pair(file, line);
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:137:13: warning: 'auto'
type specifier is a C++11 extension [-Wc++11-extensions]
auto file_and_line = std::make_pair(file, line);
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:146:13: warning: 'auto'
type specifier is a C++11 extension [-Wc++11-extensions]
auto file_and_line = std::make_pair(file, line);
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:154:13: warning: 'auto'
type specifier is a C++11 extension [-Wc++11-extensions]
auto file_and_line = std::make_pair(file, line);
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:162:13: warning: 'auto'
type specifier is a C++11 extension [-Wc++11-extensions]
auto file_and_line = std::make_pair(file, line);
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:171:13: warning: 'auto'
type specifier is a C++11 extension [-Wc++11-extensions]
auto file_and_line = std::make_pair(file, line);
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:293:41: error: a space is
required between consecutive right angle brackets (use '> >')
std::vector<std::shared_ptr<TestCase>> instances_;
^~
> >
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:189:29: warning:
range-based for loop is a C++11 extension [-Wc++11-extensions]
for(std::string name: names) {
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:193:22: warning:
range-based for loop is a C++11 extension [-Wc++11-extensions]
for(U& method: methods) {
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:194:47: error: no member
named 'bind' in namespace 'std'; did you mean 'find'?
std::function<void()> func = std::bind(method, dynamic_cast<...
~~~~~^~~~
find
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:862:1: note:
'find' declared here
find(_InputIterator __first, _InputIterator __last, const _Tp& __value_)
^
In file included from /Users/jamiltron/opt/kazmath/tests/main.cpp:5:
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:195:30: error: expected
expression
tests_.push_back([=]() {
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:209:9: warning: 'auto' type
specifier is a C++11 extension [-Wc++11-extensions]
auto new_tests = tests_;
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:210:9: warning: 'auto' type
specifier is a C++11 extension [-Wc++11-extensions]
auto new_names = names_;
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:226:40: warning:
range-based for loop is a C++11 extension [-Wc++11-extensions]
for(std::function<void ()> test: new_tests) {
^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:243:23: error: no member
named 'file' in 'AssertionError'
if(!e.file.empty()) {
~ ^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:244:50: error: no member
named 'file' in 'AssertionError'
std::cout << " " << e.file << ":" << e.line <...
~ ^
/Users/jamiltron/opt/kazmath/tests/kaztest/kaztest.h:246:41: error: no member
named 'file' in 'AssertionError'
std::ifstream ifs(e.file);
~ ^
/Users/jamiltron/opt/kazmath/tests/main.cpp:27:43: error: expected expression
std::vector<void (TestAABB::*)()>({&TestAABB::test_aabb_expand_t...
^
/Users/jamiltron/opt/kazmath/tests/main.cpp:28:9: error: expected expression
{"TestAABB::test_aabb_expand_to_contain", "TestAABB::test_aabb_c...
^
/Users/jamiltron/opt/kazmath/tests/main.cpp:32:43: error: expected expression
std::vector<void (TestMat3::*)()>({&TestMat3::test_mat3_inverse...
^
/Users/jamiltron/opt/kazmath/tests/main.cpp:33:9: error: expected expression
{"TestMat3::test_mat3_inverse", "TestMat3::test_mat3_transpose"...
^
/Users/jamiltron/opt/kazmath/tests/main.cpp:37:43: error: expected expression
std::vector<void (TestMat4::*)()>({&TestMat4::test_mat4_inverse...
^
/Users/jamiltron/opt/kazmath/tests/main.cpp:38:9: error: expected expression
{"TestMat4::test_mat4_inverse", "TestMat4::test_mat4_and_quatern...
^
/Users/jamiltron/opt/kazmath/tests/main.cpp:42:44: error: expected expression
std::vector<void (TestPlane::*)()>({&TestPlane::test_plane_extra...
^
/Users/jamiltron/opt/kazmath/tests/main.cpp:43:9: error: expected expression
{"TestPlane::test_plane_extraction_from_matrix", "TestPlane::tes...
^
/Users/jamiltron/opt/kazmath/tests/main.cpp:47:49: error: expected expression
std::vector<void (TestQuaternion::*)()>({&TestQuaternion::test_q...
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
14 warnings and 20 errors generated.
make[2]: *** [tests/CMakeFiles/kazmath_tests.dir/main.cpp.o] Error 1
make[1]: *** [tests/CMakeFiles/kazmath_tests.dir/all] Error 2
make: *** [all] Error 2
Thanks! Do you know what compiler and version this is?
Sorry, I have no idea what happened there - it didn't work for me either! Should be fixed now!
make
Undefined symbols for architecture x86_64:
"_luaL_register", referenced from:
_opencls__kmMat3 in lkazmath.c.o
_opencls__kmRay2 in lkazmath.c.o
_opencls__kmRay3 in lkazmath.c.o
_opencls__kmQuaternion in lkazmath.c.o
_opencls__kmMat4 in lkazmath.c.o
_opencls__kmAABB2 in lkazmath.c.o
_opencls__kmPlane in lkazmath.c.o
...
"_lua_objlen", referenced from:
_lua__kmMat3NewWithArray in lkazmath.c.o
_lua__kmMat4NewWithArray in lkazmath.c.o
_lua__kmMat3Fill in lkazmath.c.o
_lua__kmMat4Fill in lkazmath.c.o
_luac__is_array in lkazmath.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lua/liblkazmath.dylib] Error 1
make[1]: *** [lua/CMakeFiles/lkazmath.dir/all] Error 2
make: *** [all] Error 2
Hmm, that's odd... I've just acquired a (broken) Macbook so I'll see if I can get it running and figure this out. For now you can disable building the lua bindings with:
cmake -DKAZMATH_BUILD_LUA_WRAPPER=off ..
And that should make things compile for now.
Thanks. Let me know if there's anyway I can help out. Unfortunately I am not very knowledgable with CMake, which it seems like may be the issue here.