Проблема Java JNI cmakeJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема Java JNI cmake

Сообщение Anonymous »

У меня есть простой код на Java, который вызывает собственный метод, вызывающий std::cout. Я компилирую его с помощью

Код: Выделить всё

clang -I $ENV:JAVA_HOME\include -I $ENV:JAVA_HOME\include\win32 .\Main.c -o Main.o
clang -shared -o Main.dll .\Main.o
Если скомпилировать таким образом, то работает корректно, ошибок не возникло. Однако я также использую CMake для компиляции кода. Мой файл CMakeLists.txt выглядит следующим образом:

Код: Выделить всё

cmake_minimum_required(VERSION 4.0)
project(something CXX)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_C_STANDARD 11)
set(CMAKE_BUILD_TYPE RELEASE)
set(LIBRARY_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/mylib")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/mylib")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/mylib")

include_directories(build)
include_directories(build/generated)
include_directories(build/generated/sources)
include_directories(build/generated/sources/headers)
include_directories(build/generated/sources/headers/java)
include_directories(build/generated/sources/headers/java/main)
include_directories($ENV{JAVA_HOME}/include)
include_directories($ENV{JAVA_HOME}/include/win32)

add_library(something SHARED
build/generated/sources/headers/java/main/org_qmained_Main.h
something.cpp)
Он работает правильно, если не используется «внешняя» библиотека. stdio.h printf работает, но не работает на std::vector или std::cout с сообщением «Указанная процедура не найдена». В чем может быть причина этой ошибки?


Подробнее здесь: https://stackoverflow.com/questions/798 ... make-issue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»