Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed to build: error: ‘uint64_t’ was not declared in this scope #19

Open
knewter opened this issue Feb 27, 2024 · 3 comments
Open

Comments

@knewter
Copy link

knewter commented Feb 27, 2024

Not really sure the culprit, felt obligated to report the build failure. happy to help sort it out if i can, i'm sure it's just something janky on my end

# mix.exs
  defp deps do
    [
      {:hnswlib, github: "elixir-nx/hnswlib"},
    ]
  end
==> hnswlib
Error happened while installing hnswlib from precompiled binary: "missing checksum.exs file".

Attempting to compile hnswlib from source...
CMake Warning:
  Ignoring empty string ("") provided on the command line.

Not searching for unused variables given on the command line.

-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using PRIV_DIR: /home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/priv
-- Using ERTS_INCLUDE_DIR: /home/jadams/.asdf/installs/erlang/26.2.2/erts-14.2.2/include
-- CMAKE_TOOLCHAIN_FILE:
-- Configuring done (0.3s)
-- Generating done (0.0s)
-- Build files have been written to: /home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/cmake_hnswlib
make[1]: Entering directory '/home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/cmake_hnswlib'
make[1]: warning: -j1 forced in submake: resetting jobserver mode.
[ 33%] Building CXX object CMakeFiles/hnswlib_nif.dir/c_src/nif_utils.cpp.o
In file included from /home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:5:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp: In function ‘int erlang::nif::make_u64_list_from_c_array(ErlNifEnv*, size_t, T*, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:80:43: error: ‘uint64_t’ was not declared in this scope
   80 |         terms[i] = enif_make_uint64(env, (uint64_t)(data[i]));
      |                                           ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:12:1: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
   11 | #include <vector>
  +++ |+#include <cstdint>
   12 |
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp: In function ‘int erlang::nif::make_u32_list_from_c_array(ErlNifEnv*, size_t, T*, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:118:41: error: ‘uint32_t’ was not declared in this scope
  118 |         terms[i] = enif_make_uint(env, (uint32_t)(data[i]));
      |                                         ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:118:41: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp: At global scope:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:149:35: error: ‘uint32_t’ has not been declared
  149 | ERL_NIF_TERM make(ErlNifEnv *env, uint32_t var);
      |                                   ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:163:44: error: ‘uint8_t’ was not declared in this scope
  163 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out);
      |                                            ^~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:163:44: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:163:51: error: template argument 1 is invalid
  163 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out);
      |                                                   ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:163:51: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:164:44: error: ‘uint16_t’ was not declared in this scope
  164 | int make(ErlNifEnv *env, const std::vector<uint16_t>& array, ERL_NIF_TERM &out);
      |                                            ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:164:44: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:164:52: error: template argument 1 is invalid
  164 | int make(ErlNifEnv *env, const std::vector<uint16_t>& array, ERL_NIF_TERM &out);
      |                                                    ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:164:52: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:165:44: error: ‘uint32_t’ was not declared in this scope
  165 | int make(ErlNifEnv *env, const std::vector<uint32_t>& array, ERL_NIF_TERM &out);
      |                                            ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:165:44: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:165:52: error: template argument 1 is invalid
  165 | int make(ErlNifEnv *env, const std::vector<uint32_t>& array, ERL_NIF_TERM &out);
      |                                                    ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:165:52: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:271:61: error: ‘uint64_t’ was not declared in this scope
  271 | int get_list(ErlNifEnv *env, ERL_NIF_TERM list, std::vector<uint64_t> &var);
      |                                                             ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:271:61: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:271:69: error: template argument 1 is invalid
  271 | int get_list(ErlNifEnv *env, ERL_NIF_TERM list, std::vector<uint64_t> &var);
      |                                                                     ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:271:69: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:160:35: error: ‘uint32_t’ has not been declared
  160 | ERL_NIF_TERM make(ErlNifEnv *env, uint32_t var) {
      |                                   ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:160:14: error: redefinition of ‘ERL_NIF_TERM erlang::nif::make(ErlNifEnv*, int)’
  160 | ERL_NIF_TERM make(ErlNifEnv *env, uint32_t var) {
      |              ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:152:14: note: ‘ERL_NIF_TERM erlang::nif::make(ErlNifEnv*, int32_t)’ previously defined here
  152 | ERL_NIF_TERM make(ErlNifEnv *env, int32_t var) {
      |              ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:219:44: error: ‘uint8_t’ was not declared in this scope
  219 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out) {
      |                                            ^~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:6:1: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
    5 | #include "nif_utils.hpp"
  +++ |+#include <cstdint>
    6 |
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:219:51: error: template argument 1 is invalid
  219 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out) {
      |                                                   ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:219:51: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:220:26: error: request for member ‘size’ in ‘array’, which is of non-class type ‘const int’
  220 |     size_t count = array.size();
      |                          ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:221:5: error: ‘uint8_t’ was not declared in this scope
  221 |     uint8_t * data = (uint8_t *)array.data();
      |     ^~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:221:5: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:221:15: error: ‘data’ was not declared in this scope
  221 |     uint8_t * data = (uint8_t *)array.data();
      |               ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:221:32: error: expected primary-expression before ‘)’ token
  221 |     uint8_t * data = (uint8_t *)array.data();
      |                                ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: At global scope:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:225:44: error: ‘uint16_t’ was not declared in this scope
  225 | int make(ErlNifEnv *env, const std::vector<uint16_t>& array, ERL_NIF_TERM &out) {
      |                                            ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:225:44: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:225:52: error: template argument 1 is invalid
  225 | int make(ErlNifEnv *env, const std::vector<uint16_t>& array, ERL_NIF_TERM &out) {
      |                                                    ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:225:52: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:225:5: error: redefinition of ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’
  225 | int make(ErlNifEnv *env, const std::vector<uint16_t>& array, ERL_NIF_TERM &out) {
      |     ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:219:5: note: ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’ previously defined here
  219 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out) {
      |     ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:226:26: error: request for member ‘size’ in ‘array’, which is of non-class type ‘const int’
  226 |     size_t count = array.size();
      |                          ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:227:5: error: ‘uint16_t’ was not declared in this scope
  227 |     uint16_t * data = (uint16_t *)array.data();
      |     ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:227:5: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:227:16: error: ‘data’ was not declared in this scope
  227 |     uint16_t * data = (uint16_t *)array.data();
      |                ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:227:34: error: expected primary-expression before ‘)’ token
  227 |     uint16_t * data = (uint16_t *)array.data();
      |                                  ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: At global scope:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:231:44: error: ‘uint32_t’ was not declared in this scope
  231 | int make(ErlNifEnv *env, const std::vector<uint32_t>& array, ERL_NIF_TERM &out) {
      |                                            ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:231:44: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:231:52: error: template argument 1 is invalid
  231 | int make(ErlNifEnv *env, const std::vector<uint32_t>& array, ERL_NIF_TERM &out) {
      |                                                    ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:231:52: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:231:5: error: redefinition of ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’
  231 | int make(ErlNifEnv *env, const std::vector<uint32_t>& array, ERL_NIF_TERM &out) {
      |     ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:219:5: note: ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’ previously defined here
  219 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out) {
      |     ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:232:26: error: request for member ‘size’ in ‘array’, which is of non-class type ‘const int’
  232 |     size_t count = array.size();
      |                          ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:233:5: error: ‘uint32_t’ was not declared in this scope
  233 |     uint32_t * data = (uint32_t *)array.data();
      |     ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:233:5: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:233:16: error: ‘data’ was not declared in this scope
  233 |     uint32_t * data = (uint32_t *)array.data();
      |                ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:233:34: error: expected primary-expression before ‘)’ token
  233 |     uint32_t * data = (uint32_t *)array.data();
      |                                  ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::make(ErlNifEnv*, const std::vector<long long unsigned int>&, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:239:5: error: ‘uint64_t’ was not declared in this scope
  239 |     uint64_t * data = (uint64_t *)array.data();
      |     ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:239:5: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:239:16: error: ‘data’ was not declared in this scope
  239 |     uint64_t * data = (uint64_t *)array.data();
      |                ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:239:34: error: expected primary-expression before ‘)’ token
  239 |     uint64_t * data = (uint64_t *)array.data();
      |                                  ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::make(ErlNifEnv*, const std::vector<long unsigned int>&, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:270:9: error: ‘uint64_t’ was not declared in this scope
  270 |         uint64_t * data = (uint64_t *)array.data();
      |         ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:270:9: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:270:20: error: ‘data’ was not declared in this scope
  270 |         uint64_t * data = (uint64_t *)array.data();
      |                    ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:270:38: error: expected primary-expression before ‘)’ token
  270 |         uint64_t * data = (uint64_t *)array.data();
      |                                      ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:273:9: error: ‘uint32_t’ was not declared in this scope
  273 |         uint32_t * data = (uint32_t *)array.data();
      |         ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:273:9: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:273:20: error: ‘data’ was not declared in this scope
  273 |         uint32_t * data = (uint32_t *)array.data();
      |                    ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:273:38: error: expected primary-expression before ‘)’ token
  273 |         uint32_t * data = (uint32_t *)array.data();
      |                                      ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: At global scope:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:474:61: error: ‘uint64_t’ was not declared in this scope
  474 | int get_list(ErlNifEnv *env, ERL_NIF_TERM list, std::vector<uint64_t> &var) {
      |                                                             ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:474:61: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:474:69: error: template argument 1 is invalid
  474 | int get_list(ErlNifEnv *env, ERL_NIF_TERM list, std::vector<uint64_t> &var) {
      |                                                                     ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:474:69: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::get_list(ErlNifEnv*, ERL_NIF_TERM, int&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:480:9: error: request for member ‘reserve’ in ‘var’, which is of non-class type ‘int’
  480 |     var.reserve(length);
      |         ^~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:484:9: error: ‘uint64_t’ was not declared in this scope
  484 |         uint64_t elem;
      |         ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:484:9: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:485:30: error: ‘elem’ was not declared in this scope
  485 |         if (!get(env, head, &elem)) {
      |                              ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:489:13: error: request for member ‘push_back’ in ‘var’, which is of non-class type ‘int’
  489 |         var.push_back(elem);
      |             ^~~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:489:23: error: ‘elem’ was not declared in this scope
  489 |         var.push_back(elem);
      |                       ^~~~
make[3]: *** [CMakeFiles/hnswlib_nif.dir/build.make:76: CMakeFiles/hnswlib_nif.dir/c_src/nif_utils.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:83: CMakeFiles/hnswlib_nif.dir/all] Error 2
make[1]: *** [Makefile:136: all] Error 2
make[1]: Leaving directory '/home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/cmake_hnswlib'
\033[0;31mincomplete build of hnswlib found in '/home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/cmake_hnswlib', please delete that directory and retry\033[0m
make: *** [Makefile:42: /home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/priv/hnswlib_nif.so] Error 1
could not compile dependency :hnswlib, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile hnswlib --force", update it with "mix deps.update hnswlib" or clean it with "mix deps.clean hnswlib"
==> foo
** (Mix) Could not compile with "make" (exit status: 2).
You need to have gcc and make installed. If you are using
Ubuntu or any other Debian-based system, install the packages
"build-essential". Also install "erlang-dev" package if not
included in your Erlang/OTP version. If you're on Fedora, run
"dnf group install 'Development Tools'".
@polvalente
Copy link

From the initial config messages it seems that the C/C++ compilers aren't set properly. Did you ensure gcc/g++ are properly installed and set as the default compilers?

@cocoa-xu
Copy link
Member

Hi @knewter, I've push a commit that includes the stdint.h header to fix this issue. It should work now, please let me know if it doesn't!

@cocoa-xu
Copy link
Member

v0.1.5 is shipped!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants