codegen:- Problems when attempting to build a c++ based .exe rather than c?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am having a few problems with using codegen (via the gui interface).
I have successfully built a very simple c based .exe program based on the following two files.
.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;
}
If I now try and change out main.c for the same code in a main.cpp,
main.cpp
#include <stdio.h>
#include <stdlib.h>
#include "coderand.h"
void main(int argc, char **argv)
{
printf("coderand=%g\n", coderand());
}
I get the following compile errors.
main.obj : error LNK2019: unresolved external symbol "double __cdecl coderand(void)" (?coderand@@YANXZ) referenced in function _main 25 F:\CoderTest\coderand.exe : fatal error LNK1120: 1 unresolved externals
I assume it is because I am still building c code. What option do I have to change to fix this?
0 Kommentare
Antworten (2)
Kaustubha Govind
am 16 Apr. 2012
You probably need to add a extern "C" { } block around the declaration for coderand() in coderand.h, so that the C++ compiler doesn't use C++ style linkage.
Or try:
extern "C" {
#include "coderand.h"
}
0 Kommentare
Siehe auch
Kategorien
Mehr zu MATLAB Algorithm Acceleration finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!