ARTICLE AD BOX
I have a simple code in Java that calls native method that calls std::cout. I compile it with
clang -I $ENV:JAVA_HOME\include -I $ENV:JAVA_HOME\include\win32 .\Main.c -o Main.o clang -shared -o Main.dll .\Main.oIt works correctly. However, I also use CMake for code compiling. My CMakeLists.txt is as follows:
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)It works correctly when no "external" library is used. stdio.h printf works, but fails on std::vector or std::cout with "The specified procedure could not be found". What can be a reason of this error?
