У меня возникли проблемы с использованием codegen (через интерфейс gui).codegen matlab to C++: - Проблемы при попытке создания C++-основанного .exe, а не c?
Я успешно разработал очень простую программу на основе C. на основе следующих двух файлов.
coderand.m
function r = coderand() %#codegen
r = rand();
main.c
#include <stdio.h>
#include <stdlib.h>
#include "coderand.h"
int main()
{
printf("coderand=%g\n", coderand());
return 0;
}
Если теперь попытаться изменить вне main.c для того же кода в main.cpp,
основной. cpp
#include <stdio.h>
#include <stdlib.h>
#include "coderand.h"
void main(int argc, char **argv)
{
printf("coderand=%g\n", coderand());
}
Получаю из-за ошибок компиляции.
main.obj : error LNK2019: unresolved external symbol "double __cdecl coderand(void)" ([email protected]@YANXZ) referenced in function _main 25 F:\CoderTest\coderand.exe : fatal error LNK1120: 1 unresolved externals
Любая помощь очень ценится.
Edit: - решаемые себе ...
Для тех, кто страдает той же проблемой ...
Coder -> Дополнительные настройки -> Все настройки -> Дополнительно -> Language..change C в C++
Я знаю об этом, но я думаю, вы, возможно, неправильно поняли конкретный вопрос. Я нашел решение самостоятельно ... скрытый глубоко в настройках Matlab - это крошечная коробка, в которой говорится C или C++ .... Спасибо в любом случае – oracle3001
@ oracle3001: Вы попробовали мой ответ? Он разрешит неразрешенную внешнюю ошибку, поскольку будет искать функцию, названную в соответствии с соглашениями C, а не соглашениями на C++. Соглашение об именах C++ управляет именем для включения типов параметров, в соглашении C нет. –