google / jni-bind

JNI Bind is a set of advanced syntactic sugar for writing efficient correct JNI Code in C++17 (and up).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Getting compilation errors when using modules

opened this issue · comments

Hi!

I am getting the following compilation error when using certain part of your package inside a module;

Relevant Code:
selenium_bindings.h++

module;

#include <string>

#include <jni.h>
#include <jni_bind.h>

using namespace std;
using namespace jni;

export module selenium_bindings;

export constexpr Class FirefoxDriver {
    "org/openqa/selenium/firefox/FirefoxDriver",
    Constructor()
 };

export class NPC {
private:
    LocalObject<FirefoxDriver> ffxDriver;

public:
    NPC() {
    }

    virtual ~NPC() {
    }
};

main.cc

// inside main
NPC npc("", "");

getting the following error:

/nix/store/9ysy4d521yfhg7x81fkw0vq2kaqcyix5-jnibind-0.9.8/include/jni_bind.h:2377:25: error: 'jni::metaprogramming::StringAsType::static_chars' from module 'selenium_bindings.<global>' is not present in definition of 'StringAsType<chars...>' provided earlier
  static constexpr char static_chars[] = {chars..., 0};
                        ^
/nix/store/9ysy4d521yfhg7x81fkw0vq2kaqcyix5-jnibind-0.9.8/include/jni_bind.h:2377:25: note: declaration of 'static_chars' does not match
  static constexpr char static_chars[] = {chars..., 0};
                        ^
1 error generated.

using:

clang version 16.0.6
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /nix/store/dl48w741h1pbpyzyd4aaq18pr2hvv00y-clang-16.0.6/bin

Thanks for the bug report! Is this new with 0.9.8 or was this your first time trying it and it failed?

First time trying it out.

Sorry for the lack of update. I want to clear out some outstanding issues for a 1.0 release first, however, I did notice that modules support seems to be an active discussion here;

bazelbuild/bazel#19940

I tried briefly to play with this myself but frustratingly I couldn't get them to work with Bazel.