Мне нужно передать строку, известную во время компиляции, из fortran в библиотеку c ++. Ни одна из страниц в моих результатах поиска не затрагивала это особое различие. Вот как выглядит код в настоящее время:
Fortran:
subroutine fci_wmm_associate_variable(array_name, array_pointer)
implicit none
character*100, intent(in), value :: array_name
type (c_ptr), intent(in) :: array_pointer
interface
subroutine wmm_associate_variable(name_f, pointer_f) bind (c)
use iso_c_binding
character (c_char), intent(in) :: name_f
type (c_ptr), intent(in), value :: pointer_f
end subroutine wmm_associate_variable
end interface
call wmm_associate_variable(array_name, array_pointer)
end subroutine fci_wmm_associate_variable
C ++:
void wmm_associate_variable(char* varname, double* var_pointer)
{
//do stuf
}
Это прекрасно компилируется, но моей библиотеке нужна функция C ++ для просмотра следующим образом:
void wmm_associate_variable(const char* varname, double* var_pointer)
{
//do stuf
}
Когда это происходит, я получаю неопределенную ссылку:
undefined reference to `wmm_associate_variable'
Как мне заставить это работать для const char *?