Я пробовал это: вызывая функцию (со ссылкой на параметр) из другого файла cpp, я не могу ничего присвоить параметру, переданному по ссылке.
в функции Java_com_example_afeTest_testReference в test.cpp
std::string a ="";
const std::string x = "jo";
std::string y = "yi", z = "ta";
testFunc(a,x,y, z); // call test function which resides in same cpp no error
Теперь поместите эту функцию в test.cpp, она работает
std::string& testFunc(std::string& a, const std::string& x, std::string& y, std::string& z){
a = x;
a +=y;
a +=z;
return a;
}
Теперь поместите этот testFunc в другой test2.cpp и вызовите его из test.cpp, после которого произойдет ошибка сегментации.
а = х
** Таким образом, если testFunc & Java_com_example_afeTest_testReference - это один и тот же файл cpp, он работает, если две функции в двух файлах cpp и вы хотите передать ссылку, это вызывает ошибку сегментации. Я также проверил с помощью extern.