How to pass a struct from C++ to C? -


updated: main.h

typedef struct {     float x;     float y;     float z; }vec3; const int sizeofgrid = 20000; vec3 *grid[sizeofgrid];//assume initialized 

main.cpp

#include "main.h" extern "c" void cudatranslate(vec3 *x); void display() {     cudatranslate(grid); } 

linecuda.cu

#include <stdio.h> #include <assert.h> #include <cuda.h> #include "main.h"  extern "c" void cudatranslate(vec3 *x) {  } 

getting:
main.obj : error lnk2005: "struct vec3 * * grid" (?grid@@3papauvec3@@a) defined in linecuda.obj
fatal error lnk1169: 1 or more multiply defined symbols found

move grid main.cpp. pass linecuda.cu. problem solved.

updated: main.h

typedef struct {     float x;     float y;     float z; }vec3; const int sizeofgrid = 20000; 

main.cpp

#include "main.h" vec3 *grid[sizeofgrid];//assume initialized extern "c" void cudatranslate(vec3 *x); void display() {     cudatranslate(grid); } 

Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -