genn-team / genn

GeNN is a GPU-enhanced Neuronal Network simulation environment based on code generation for Nvidia CUDA.
http://genn-team.github.io/
GNU Lesser General Public License v2.1
234 stars 57 forks source link

How to deal with makefile? #116

Closed spinang closed 7 years ago

spinang commented 7 years ago

I'm sorry to repeat again my question, but I would like to know if I'm going in the right way. I'm trying to include some .h and .c files in order to make communicating my application with a V-REP scene; is this makefile_common_win.mk

##--------------------------------------------------------------------------
##   Author: Thomas Nowotny
##
##   Institute: Center for Computational Neuroscience and Robotics
##              University of Sussex
##              Falmer, Brighton BN1 9QJ, UK
##
##   email to:  T.Nowotny@sussex.ac.uk
##
##   initial version: 2010-02-07
##
##--------------------------------------------------------------------------

# Makefile include for all GeNN projects
# This is a Windows Makefile, to be used by the MS nmake build system
#--------------------------------------------------------------------

# Global C++ and CUDA compiler settings.
NVCC        = "$(CUDA_PATH)\bin\nvcc.exe"
NVCCFLAGS   = $(NVCCFLAGS) -g -G
CXXFLAGS    = $(CXXFLAGS) /nologo /EHsc /Zi

# Global include flags and link flags.
INCLUDE_FLAGS   = /I"$(CUDA_PATH)\include" /I"$(CUDA_PATH)\samples\common\inc" /I"$(GENN_PATH)\lib\include" /I"$(GENN_PATH)\userproject\include"  /I"$(GENN_PATH)\userproject\VREP\remoteApi" $(EXTRA_INCLUDE)
!IF "$(PROCESSOR_ARCHITECTURE)" == "AMD64"
LINK_FLAGS  ="$(CUDA_PATH)\lib\x64\cudart.lib"
!ELSEIF "$(PROCESSOR_ARCHITEW6432)" == "AMD64"
LINK_FLAGS  ="$(CUDA_PATH)\lib\x64\cudart.lib"
!ELSE
LINK_FLAGS  ="$(CUDA_PATH)\lib\Win32\cudart.lib"
!ENDIF

# An auto-generated file containing your cuda device's compute capability.
!INCLUDE sm_version.mk

# Infer object file names from source file names.
OBJECTS     =$(SOURCES:.cc=.obj)
OBJECTS     =$(OBJECTS:.cpp=.obj)
OBJECTS     =$(OBJECTS:.cu=.obj)
OBJECTS     =$(OBJECTS:.c=.obj)

# Target rules.
.SUFFIXES: .cu

all: $(EXECUTABLE)

.cc.obj:
    $(CXX) $(CXXFLAGS) $(INCLUDE_FLAGS) $< /Fo$@ /c

.cpp.obj:
    $(CXX) $(CXXFLAGS) $(INCLUDE_FLAGS) $< /Fo$@ /c

.cu.obj:
    $(NVCC) $(NVCCFLAGS) $(INCLUDE_FLAGS:/I=-I) $(GENCODE_FLAGS) $< /Fo$@ -c

.c.obj:
    $(CXX) $(CXXFLAGS) $(INCLUDE_FLAGS) $< /Fo$@ /c

$(EXECUTABLE): $(OBJECTS)
    $(CXX) $(CXXFLAGS) $(LINK_FLAGS) $(OBJECTS) /Fe$@

clean:
    -del $(EXECUTABLE) *.obj *.ilk *.pdb 2>nul

purge: clean
    -del sm_version.mk 2>nul
    -rd /s /q *_CODE 2>nul

right? I added a new OBJECTS entry for .c files (my library comprises some .c files) and I copied the rule used for both .cc.obj and .cpp.obj also for .c.obj. Moreover, I added /I"$(GENN_PATH)\userproject\VREP\remoteApi" and I include .h files in my .cu program, but I still can't compile the project. Someone suggested me to change .c files in .cpp files and to include them within the WINmakefile file (SOURCES), but I tried unsuccessfully.

jamesturner246 commented 7 years ago

Please post the errors you get.

spinang commented 7 years ago

This is the .cu file:

// Include libraries
#include <string>

#include "CODE.cc"
#include "CNN_NEURON_CODE/runner.cc"
#include "C:\genn-team-genn-8cacb78\lib\include\hr_time.cpp"

#include "extApi.h"
#include "extApiPlatform.h"
#include "extApi.c"
#include "extApiPlatform.c"

// Prototypes
double getY(double x);

// main
int main(int argc, char ** argv) {
    double r;
    const int SIMULATION_TIME = (argc >= 2) ? atoi(argv[1]) : 1000;
    int serverPort = 19997;
    CStopWatch timer;
    ifstream weights("weights.dat");
    ofstream outputs("outputs.dat");
    string serverIP = "127.0.0.1";

    allocateMem();
    initialize();
    // Randomize initial conditions
    srand(time(NULL));
    for(int i = 0; i < NEURONS; i++){
        r = (double)rand()/(double)RAND_MAX;
        x1CNN[i] = r;
        y1CNN[i] = getY(r);
        r = (double)rand()/(double)RAND_MAX;
        x2CNN[i] = r;
        y2CNN[i] = getY(r);
    }
    pushCNNStateToDevice();

    // Read weights matrix and configure connectivity
    weights.clear();
    weights.seekg(0);
    int row = 0;
    string line;
    while(std::getline(weights,line)){
        int col = 0;
        char * lineChar = new char[line.length()+1];
        char * token;
        strcpy(lineChar,line.c_str());
        token = strtok(lineChar,"\t");
        while(token != NULL){
            epsilonCNN_SYN[row * NEURONS + col] = atof(token);
            token = strtok(NULL,"\t");
            col++;
        }
        row++;
    }
    weights.close();
    pushCNN_SYNToDevice();

    //Prepare V-REP connection
    int clientID = simxStart((simChar *)serverIP.c_str(),serverPort,true,true,2000,5);
    if(clientID != -1){
        perror("NO CONNECTION TO V-REP!");
        exit(EXIT_FAILURE);
    }
    int innerRevoluteJoint;
    int outerRevoluteJoint;
    if(simxGetObjectHandle(clientID,(const simxChar*) "Inner_Revolute_Joint",(simxInt *) &innerRevoluteJoint, (simxInt) simx_opmode_oneshot_wait) != simx_return_ok){
        perror("NO CONNECTION TO THE INNER_REVOLUTE_JOINT!");
        exit(EXIT_FAILURE);
    }
    if(simxGetObjectHandle(clientID,(const simxChar*) "Outer_Revolute_Joint",(simxInt *) &outerRevoluteJoint, (simxInt) simx_opmode_oneshot_wait) != simx_return_ok){
        perror("NO CONNECTION TO THE OUTER_REVOLUTE_JOINT!");
        exit(EXIT_FAILURE);
    }

    // Simulation
    const double sendTime = 10 * DT;
    timer.startTimer();
    for(double time = 0; time < SIMULATION_TIME; time += DT){
        stepTimeGPU(time);
        pullCNNStateFromDevice();
        for(int i = 0; i < NEURONS; i++){
            outputs << i << "\t" << time << "\t" << x1CNN[i] << "\t" << x2CNN[i] << "\t" << y1CNN[i] << "\t" << y2CNN[i] << "\t" << i_synCNN[i] << endl;
            // I'm assuming only one neuron that drives both joints.
            if(fmod(time,sendTime) <= 1e-3){
                // Send samples
                simxSetJointPosition(clientID,innerRevoluteJoint,(simxFloat) y1CNN[i],simx_opmode_oneshot);
                simxSetJointPosition(clientID,outerRevoluteJoint,(simxFloat) y2CNN[i],simx_opmode_oneshot);
                extApi_sleepMs(5);
            }
        }
    }
    outputs.close();
    timer.stopTimer();
    simxFinish(clientID);

    cout << "The simulation time is: " << timer.getElapsedTime() << " seconds." << endl;
    return 0;
}

// GetY
double getY(double x){ return 0.5 * (fabs(x + 1) - fabs(x - 1)); }

and these are the errors:

C:\genn-team-genn-8cacb78\userproject\VREP>nmake /f WINmakefile clean && nmake /f WINmakefile

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        del SIM *.obj *.ilk *.pdb 2>nul

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"  -g -G -arch sm_21 -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUD
A\v7.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\samples\common\inc" -I"C:\genn-team-genn-8cacb78\lib\include" -I"C:\genn-te
am-genn-8cacb78\userproject\include"  -I"C:\genn-team-genn-8cacb78\userproject\VREP\remoteApi"   SIM.cu /FoSIM.obj -c
SIM.cu
c:\genn-team-genn-8cacb78\userproject\vrep\extApiInternal.h(41): error: identifier "MAX_EXT_API_CONNECTIONS" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(172): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(206): error: identifier "_communicationThread" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(246): error: identifier "simx_cmd_kill_connection" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(246): error: identifier "simx_opmode_oneshot" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(246): error: identifier "_exec_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(279): error: identifier "simx_cmd_kill_connection" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(279): error: identifier "simx_opmode_oneshot" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(279): error: identifier "_exec_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(332): error: identifier "simx_return_timeout_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(342): error: identifier "simx_cmdheaderoffset_mem_size" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(356): error: identifier "simx_cmdheaderoffset_status" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(357): error: identifier "simx_cmdheaderoffset_sim_time" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(359): error: identifier "simx_return_remote_error_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(362): error: identifier "simx_return_novalue_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(372): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(373): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(376): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(380): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(384): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(386): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(389): error: identifier "_appendCommand_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(394): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(394): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(397): error: identifier "_appendCommand_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(401): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(412): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(412): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(416): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(417): error: identifier "_removeCommandReply_null" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(427): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(429): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(432): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(436): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(440): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(444): error: identifier "simx_cmdheaderoffset_mem_size" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(444): error: identifier "SIMX_SUBHEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(445): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(448): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(453): error: identifier "_appendCommand_null_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(457): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(457): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(460): error: identifier "simx_cmdheaderoffset_mem_size" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(460): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(461): error: identifier "_appendCommand_null_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(464): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(475): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(475): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(479): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(480): error: identifier "_removeCommandReply_null" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(491): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(492): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(495): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(499): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(503): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(505): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(508): error: identifier "_appendCommand_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(513): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(513): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(516): error: identifier "simx_cmdheaderoffset_cmd" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(520): error: identifier "_appendCommand_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(524): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(535): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(535): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(539): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(540): error: identifier "_removeCommandReply_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(549): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(550): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(553): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(557): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(561): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(563): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(566): error: identifier "_appendCommand_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(571): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(571): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(574): error: identifier "simx_cmdheaderoffset_cmd" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(578): error: identifier "_appendCommand_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(582): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(593): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(593): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(597): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(598): error: identifier "_removeCommandReply_intint" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(607): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(609): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(612): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(616): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(620): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(623): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(627): error: identifier "_appendCommand_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(632): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(632): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(635): error: identifier "simx_cmdheaderoffset_cmd" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(639): error: identifier "_appendCommand_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(643): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(654): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(654): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(658): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(659): error: identifier "_removeCommandReply_string" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(668): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(670): error: identifier "simx_cmdmask" is undefined

Error limit reached.
100 errors detected in the compilation of "C:/Users/Pollino/AppData/Local/Temp/tmpxft_0000004c_00000000-8_SIM.cpp1.ii".
Compilation terminated.
NMAKE : fatal error U1077: '"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"' : return code '0x4'
Stop.

C:\genn-team-genn-8cacb78\userproject\VREP>
jamesturner246 commented 7 years ago

Starting from the top:

...\userproject\vrep\extApiInternal.h(41): error: identifier "MAX_EXT_API_CONNECTIONS" is undefined

If MAX_EXT_API_CONNECTIONS is defined, then it it not defined soon enough - i.e. before extApiInternal.h, line 41. Where, in your program, is it defined?

spinang commented 7 years ago

Ops, those errors are related to an older trial. These are the newer ones:


C:\genn-team-genn-8cacb78\userproject\VREP>nmake /f WINmakefile clean && nmake /f WINmakefile

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        del SIM *.obj *.ilk *.pdb 2>nul

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"  -g -G -arch sm_21 -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUD
A\v7.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\samples\common\inc" -I"C:\genn-team-genn-8cacb78\lib\include" -I"C:\genn-te
am-genn-8cacb78\userproject\include"  -I"C:\genn-team-genn-8cacb78\userproject\VREP\remoteApi"   SIM.cu /FoSIM.obj -c
SIM.cu
c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(172): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(206): error: identifier "_communicationThread" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(246): error: identifier "simx_cmd_kill_connection" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(246): error: identifier "simx_opmode_oneshot" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(246): error: identifier "_exec_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(279): error: identifier "simx_cmd_kill_connection" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(279): error: identifier "simx_opmode_oneshot" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(279): error: identifier "_exec_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(332): error: identifier "simx_return_timeout_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(342): error: identifier "simx_cmdheaderoffset_mem_size" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(356): error: identifier "simx_cmdheaderoffset_status" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(357): error: identifier "simx_cmdheaderoffset_sim_time" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(359): error: identifier "simx_return_remote_error_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(362): error: identifier "simx_return_novalue_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(372): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(373): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(376): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(380): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(384): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(386): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(389): error: identifier "_appendCommand_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(394): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(394): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(397): error: identifier "_appendCommand_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(401): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(412): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(412): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(416): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(417): error: identifier "_removeCommandReply_null" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(427): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(429): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(432): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(436): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(440): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(444): error: identifier "simx_cmdheaderoffset_mem_size" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(444): error: identifier "SIMX_SUBHEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(445): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(448): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(453): error: identifier "_appendCommand_null_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(457): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(457): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(460): error: identifier "simx_cmdheaderoffset_mem_size" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(460): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(461): error: identifier "_appendCommand_null_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(464): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(475): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(475): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(479): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(480): error: identifier "_removeCommandReply_null" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(491): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(492): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(495): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(499): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(503): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(505): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(508): error: identifier "_appendCommand_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(513): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(513): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(516): error: identifier "simx_cmdheaderoffset_cmd" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(520): error: identifier "_appendCommand_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(524): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(535): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(535): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(539): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(540): error: identifier "_removeCommandReply_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(549): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(550): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(553): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(557): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(561): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(563): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(566): error: identifier "_appendCommand_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(571): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(571): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(574): error: identifier "simx_cmdheaderoffset_cmd" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(578): error: identifier "_appendCommand_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(582): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(593): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(593): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(597): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(598): error: identifier "_removeCommandReply_intint" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(607): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(609): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(612): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(616): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(620): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(623): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(627): error: identifier "_appendCommand_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(632): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(632): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(635): error: identifier "simx_cmdheaderoffset_cmd" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(639): error: identifier "_appendCommand_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(643): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(654): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(654): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(658): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(659): error: identifier "_removeCommandReply_string" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(668): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(670): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(673): error: identifier "simx_opmode_buffer" is undefined

Error limit reached.
100 errors detected in the compilation of "C:/Users/Pollino/AppData/Local/Temp/tmpxft_000001bc_00000000-8_SIM.cpp1.ii".
Compilation terminated.
NMAKE : fatal error U1077: '"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"' : return code '0x4'
Stop.

C:\genn-team-genn-8cacb78\userproject\VREP>
spinang commented 7 years ago

This is the reference page for V-REP remote APIs: http://www.coppeliarobotics.com/helpFiles/en/remoteApiClientSide.htm

jamesturner246 commented 7 years ago

The same solution applies here. This doesn't sound like a GeNN issue. A symbol is being used before it is defined. Start at the top:

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(172): error: identifier "SIMX_HEADER_SIZE" is undefined

First, find out where SIMX_HEADER_SIZE is defined, and make sure that this definition appears before it is used.

jamesturner246 commented 7 years ago

Just a hunch, but try changing the include order to:

extApi.h
extApi.c
extApiPlatform.h
extApiPlatform.c

(the order they appear on the web page you linked to).

spinang commented 7 years ago
// Include libraries
#include <string>

#include "CODE.cc"
#include "CNN_NEURON_CODE/runner.cc"
#include "C:\genn-team-genn-8cacb78\lib\include\hr_time.cpp"

#include "v_repConst.h"
#include "v_repLib.h"
#include "v_repTypes.h"
#include "extApi.h"
#include "extApi.c"
#include "extApiPlatform.h"
#include "extApiPlatform.c"

Newer included files are for all the constants and similar stuff. By following your suggestion:

C:\genn-team-genn-8cacb78\userproject\VREP>nmake /f WINmakefile clean && nmake /f WINmakefile

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        del SIM *.obj *.ilk *.pdb 2>nul

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"  -g -G -arch sm_21 -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUD
A\v7.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\samples\common\inc" -I"C:\genn-team-genn-8cacb78\lib\include" -I"C:\genn-te
am-genn-8cacb78\userproject\include"  -I"C:\genn-team-genn-8cacb78\userproject\VREP\remoteApi"   SIM.cu /FoSIM.obj -c
SIM.cu
c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(206): error: identifier "_communicationThread" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(246): error: identifier "_exec_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(279): error: identifier "_exec_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(384): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(389): error: identifier "_appendCommand_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(394): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(397): error: identifier "_appendCommand_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(412): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(417): error: identifier "_removeCommandReply_null" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(440): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(448): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(453): error: identifier "_appendCommand_null_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(457): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(460): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(461): error: identifier "_appendCommand_null_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(475): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(480): error: identifier "_removeCommandReply_null" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(503): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(508): error: identifier "_appendCommand_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(513): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(520): error: identifier "_appendCommand_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(535): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(540): error: identifier "_removeCommandReply_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(561): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(566): error: identifier "_appendCommand_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(571): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(578): error: identifier "_appendCommand_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(593): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(598): error: identifier "_removeCommandReply_intint" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(620): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(627): error: identifier "_appendCommand_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(632): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(639): error: identifier "_appendCommand_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(654): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(659): error: identifier "_removeCommandReply_string" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(681): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(688): error: identifier "_appendCommand_i_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(693): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(701): error: identifier "_appendCommand_i_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(716): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(721): error: identifier "_removeCommandReply_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(743): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(750): error: identifier "_appendCommand_ii_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(755): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(763): error: identifier "_appendCommand_ii_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(778): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(783): error: identifier "_removeCommandReply_intint" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(805): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(812): error: identifier "_appendCommand_ii_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(817): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(820): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(823): error: identifier "_appendCommand_ii_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(837): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(842): error: identifier "_removeCommandReply_intint" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(864): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(871): error: identifier "_appendCommand_i_f" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(876): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(884): error: identifier "_appendCommand_i_f" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(899): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(904): error: identifier "_removeCommandReply_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(926): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(934): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(939): error: identifier "_appendCommand_i_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(943): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(946): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(947): error: identifier "_appendCommand_i_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(961): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(966): error: identifier "_removeCommandReply_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(989): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(997): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1002): error: identifier "_appendCommand_s_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1006): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1008): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1009): error: identifier "_appendCommand_s_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1023): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1028): error: identifier "_removeCommandReply_string" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1038): error: identifier "_getCmdDataSize" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1056): error: identifier "_getCmdDataSize" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1074): error: identifier "_getCmdDataSize" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1184): error: identifier "_appendChunkToBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1203): error: identifier "_appendChunkToBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1221): error: identifier "_appendChunkToBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1238): error: identifier "_appendChunkToBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1259): error: identifier "_appendChunkToBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1278): error: identifier "_appendChunkToBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1297): error: identifier "_appendChunkToBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1315): error: identifier "_appendChunkToBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1336): error: identifier "_appendChunkToBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1359): error: identifier "_appendChunkToBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1382): error: identifier "_appendChunkToBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1422): error: identifier "_getSameCommandPointer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1545): error: identifier "_sendSimplePacket_socket" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1574): error: identifier "_receiveSimplePacket_socket" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1595): warning: statement is unreachable

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1677): warning: variable "crc" was set but never used

93 errors detected in the compilation of "C:/Users/Pollino/AppData/Local/Temp/tmpxft_0000031c_00000000-8_SIM.cpp1.ii".
NMAKE : fatal error U1077: '"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"' : return code '0x2'
Stop.

C:\genn-team-genn-8cacb78\userproject\VREP>

Now, just few changes:

// Include libraries
#include <string>

#include "CODE.cc"
#include "CNN_NEURON_CODE/runner.cc"
#include "C:\genn-team-genn-8cacb78\lib\include\hr_time.cpp"

#include "extApi.h"
#include "extApiPlatform.h"
#include "v_repConst.h"
#include "v_repLib.h"
#include "v_repTypes.h"
//#include "extApi.c"
//#include "extApiPlatform.c"

If .c files are not included, by running nmake the number of errors decreases drastically:

C:\genn-team-genn-8cacb78\userproject\VREP>nmake /f WINmakefile clean && nmake /f WINmakefile

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        del SIM *.obj *.ilk *.pdb 2>nul

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"  -g -G -arch sm_21 -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUD
A\v7.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\samples\common\inc" -I"C:\genn-team-genn-8cacb78\lib\include" -I"C:\genn-te
am-genn-8cacb78\userproject\include"  -I"C:\genn-team-genn-8cacb78\userproject\VREP\remoteApi"   SIM.cu /FoSIM.obj -c
SIM.cu
FoSIM.obj
        cl  /nologo /EHsc /Zi "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\lib\x64\cudart.lib" SIM.obj /FeSIM
LINK : fatal error LNK1104: cannot open file 'libcpmt.lib'
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cl.EXE"' : return code '0x2'
Stop.

C:\genn-team-genn-8cacb78\userproject\VREP>
spinang commented 7 years ago

It seems there's a missing environment variable that is not set.

jamesturner246 commented 7 years ago

What happens with just

extApi.h
extApi.c
extApiPlatform.h
extApiPlatform.c
spinang commented 7 years ago

Nope, it doesn't work:


C:\genn-team-genn-8cacb78\userproject\VREP>nmake /f WINmakefile clean && nmake /f WINmakefile

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        del SIM *.obj *.ilk *.pdb 2>nul

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"  -g -G -arch sm_21 -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUD
A\v7.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\samples\common\inc" -I"C:\genn-team-genn-8cacb78\lib\include" -I"C:\genn-te
am-genn-8cacb78\userproject\include"  -I"C:\genn-team-genn-8cacb78\userproject\VREP\remoteApi"   SIM.cu /FoSIM.obj -c
SIM.cu
c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(172): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(206): error: identifier "_communicationThread" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(246): error: identifier "simx_cmd_kill_connection" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(246): error: identifier "simx_opmode_oneshot" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(246): error: identifier "_exec_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(279): error: identifier "simx_cmd_kill_connection" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(279): error: identifier "simx_opmode_oneshot" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(279): error: identifier "_exec_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(332): error: identifier "simx_return_timeout_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(342): error: identifier "simx_cmdheaderoffset_mem_size" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(356): error: identifier "simx_cmdheaderoffset_status" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(357): error: identifier "simx_cmdheaderoffset_sim_time" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(359): error: identifier "simx_return_remote_error_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(362): error: identifier "simx_return_novalue_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(372): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(373): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(376): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(380): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(384): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(386): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(389): error: identifier "_appendCommand_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(394): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(394): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(397): error: identifier "_appendCommand_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(401): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(412): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(412): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(416): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(417): error: identifier "_removeCommandReply_null" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(427): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(429): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(432): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(436): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(440): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(444): error: identifier "simx_cmdheaderoffset_mem_size" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(444): error: identifier "SIMX_SUBHEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(445): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(448): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(453): error: identifier "_appendCommand_null_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(457): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(457): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(460): error: identifier "simx_cmdheaderoffset_mem_size" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(460): error: identifier "_removeChunkFromBuffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(461): error: identifier "_appendCommand_null_buff" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(464): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(475): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(475): error: identifier "_getCommandPointer_" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(479): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(480): error: identifier "_removeCommandReply_null" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(491): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(492): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(495): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(499): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(503): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(505): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(508): error: identifier "_appendCommand_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(513): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(513): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(516): error: identifier "simx_cmdheaderoffset_cmd" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(520): error: identifier "_appendCommand_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(524): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(535): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(535): error: identifier "_getCommandPointer_i" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(539): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(540): error: identifier "_removeCommandReply_int" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(549): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(550): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(553): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(557): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(561): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(563): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(566): error: identifier "_appendCommand_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(571): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(571): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(574): error: identifier "simx_cmdheaderoffset_cmd" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(578): error: identifier "_appendCommand_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(582): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(593): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(593): error: identifier "_getCommandPointer_ii" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(597): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(598): error: identifier "_removeCommandReply_intint" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(607): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(609): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(612): error: identifier "simx_opmode_buffer" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(616): error: identifier "simx_opmode_oneshot_split" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(620): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(623): error: identifier "simx_return_split_progress_flag" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(627): error: identifier "_appendCommand_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(632): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(632): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(635): error: identifier "simx_cmdheaderoffset_cmd" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(639): error: identifier "_appendCommand_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(643): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(654): error: identifier "SIMX_HEADER_SIZE" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(654): error: identifier "_getCommandPointer_s" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(658): error: identifier "simx_opmode_oneshot_wait" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(659): error: identifier "_removeCommandReply_string" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(668): error: identifier "simx_return_ok" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(670): error: identifier "simx_cmdmask" is undefined

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(673): error: identifier "simx_opmode_buffer" is undefined

Error limit reached.
100 errors detected in the compilation of "C:/Users/Pollino/AppData/Local/Temp/tmpxft_00000210_00000000-8_SIM.cpp1.ii".
Compilation terminated.
NMAKE : fatal error U1077: '"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"' : return code '0x4'
Stop.

C:\genn-team-genn-8cacb78\userproject\VREP>
jamesturner246 commented 7 years ago

Did you:

#define NON_MATLAB_PARSING
#define MAX_EXT_API_CONNECTIONS 255

before the includes, like the page tells you?

spinang commented 7 years ago

We're almost there:

C:\genn-team-genn-8cacb78\userproject\VREP>nmake /f WINmakefile clean && nmake /f WINmakefile

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        del SIM *.obj *.ilk *.pdb 2>nul

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"  -g -G -arch sm_21 -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUD
A\v7.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\samples\common\inc" -I"C:\genn-team-genn-8cacb78\lib\include" -I"C:\genn-te
am-genn-8cacb78\userproject\include"   SIM.cu /FoSIM.obj -c
SIM.cu
c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1595): warning: statement is unreachable

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1677): warning: variable "crc" was set but never used

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1595): warning: statement is unreachable

c:\genn-team-genn-8cacb78\userproject\vrep\extApi.c(1677): warning: variable "crc" was set but never used

Adding library: Winmm.lib
Adding library: Ws2_32.lib
FoSIM.obj
        cl  /nologo /EHsc /Zi "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\lib\x64\cudart.lib" SIM.obj /FeSIM
   Creating library SIM.lib and object SIM.exp

C:\genn-team-genn-8cacb78\userproject\VREP>

Those warnings worry me, anyway... but this is surely a better result. I'm going to try the .exe file with my V-REP scene.

spinang commented 7 years ago

I'm still having problems, but not from the compiling side. If there are other issues, I'll post here.

Thanks for your help, anyway.