Import Makefile settings to VS2005 IDE

Discussion in 'C' started by jjplaw, Jun 30, 2009.

  1. jjplaw

    jjplaw New Member

    Joined:
    Jun 30, 2009
    Messages:
    8
    Likes Received:
    0
    Trophy Points:
    0
    Hi,
    I'm a newbie in this vast world of programming. I've been given some codes in C which are compiled & linked using makefile. I can compile the code using nmake from VS2005. Now i want to build the program in C++ VS2005 IDE.

    From a quick google search, there seems to be no automated functions in importing makefile settings to VS IDE.

    I tried to include all the necessary dependecies(header and lib files) stated in the makefile to VS but i get a lot of linking errors. I'm not even sure where to start looking to solve the issue. I hope the gurus can help me out.
    The makefile including two other related makefile is attached to this post.
    [1]makefile.mak
    [2]compiler.mak
    [3]options.mak

    In VS I've:
    [1] Create a new empty project
    [2] Add exisiting sources (c files and header files)
    [3] Additional Include Directories: ..../include and ..../src/make7
    [4] Additional Library Directories: ..../lib
    [5] Build project...

    I got 74 linker errors the VS output after attempted build. Example:
    Code:
    conmain.obj : error LNK2001: unresolved external symbol _MMSd_freeDsMemFunction
    Code:
    scl_cli.obj : error LNK2019: unresolved external symbol _TAM_parse_address referenced in function _ResolveServerAddress
    I've not dealt with makefiles before. I apologize if this post may sound very newbie style and amatuer-ish. I'm new but I'm willing to learn.
    Any advice and comment is greatly appreciated.

    jjplaw
     

    Attached Files:

  2. xpi0t0s

    xpi0t0s Mentor

    Joined:
    Aug 6, 2004
    Messages:
    3,009
    Likes Received:
    203
    Trophy Points:
    63
    Occupation:
    Senior Support Engineer
    Location:
    England
    > I can compile the code using nmake from VS2005

    OK. Start by posting the FULL output from a COMPLETE build from source of the code when built with make. Remove all intermediate files and the executable, use nmake to build the program and redirect the output to a file, then post the resulting file.
     
  3. jjplaw

    jjplaw New Member

    Joined:
    Jun 30, 2009
    Messages:
    8
    Likes Received:
    0
    Trophy Points:
    0
    Hi,

    I've attached a txt file containing the output of the nmake of the source codes with the nmake options -d -p -g

    Please advise.

    jjplaw
    Code:
    Included: ..\..\compiler.mak
    Included: ..\..\options.mak
    
    MACROS:
    
    PROCESSOR_IDENTIFIER = x86 Family 6 Model 23 Stepping 6, GenuineIntel
          TCLILIB = $(LIBDIR)\tcli_$(NAMETAG).lib
          RESPADD = 
          LIBPATH = C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB
          INCLUDE = C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\include;
          DAT_DEF = -DUSE_DATA
          SOCKLIB = ws2_32.lib user32.lib
          COMSPEC = C:\WINDOWS\system32\cmd.exe
          SCL_DEF = -DUSE_SCL
          TCP_DEF = -DUSE_TCP
          LIBTOOL = lib
          SIM_DEF = -DUSE_SIMULATE
       _NMAKE_VER = 8.00.50727.42
          USERINC = $(BASE)\include
          RTG_DEF = -DUSE_RTG
             BASE = ..\..
          PATHEXT = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
             MAKE = nmake/NOLOGO
    		"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\nmake.exe"
          XML_DEF = -DUSE_XML
          LINKOUT = /OUT:
          COMPOUT = /Fo
       SYSTEMROOT = C:\WINDOWS
             LIBS = $(TCPLIB) $(TCLILIB) $(CLILIB)  $(TAMLIB) $(TAMCLIB) $(MMSLIB) $(FILELIB) $(SCLLIB)
             PATH = C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files\Microsoft Visual Studio 8\VC\BIN;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\bin;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\VCPackages;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\Program Files\Microsoft SQL Server\90\Tools\binn\
             LINK = link /PROFILE /SUBSYSTEM:CONSOLE /debug /INCREMENTAL:NO /NODEFAULTLIB:libc
    NUMBER_OF_PROCESSORS = 1
             TEMP = C:\DOCUME~1\kul_jab\LOCALS~1\Temp
             COPY = copy
      CD_USERDATA = C:\Documents and Settings\All Users\Documents\zenon_Projects\
      CONSOLE_DEF = -DUSE_CONSOLE
         LIBFLAGS = 
      SESSIONNAME = Console
         INCFLAGS = /I$(DIRMAKE) /I$(USERINC)
      USERPROFILE = C:\Documents and Settings\kul_jab
    COMMONPROGRAMFILES = C:\Program Files\Common Files
      LOGONSERVER = \\ITEC-7E4BF035F6
         HOMEPATH = \Documents and Settings\kul_jab
         INCLUDES = $(TCPINC) $(CLIINC)
         COMPILER = cl /nologo /D:_MSC_VER=1 @$(BASE)\vc.cfg
    FILESERVICE_DEF = -DUSE_FILES
      SYSTEMDRIVE = C:
         AUTH_DEF = -DUSE_AUTH
         USERNAME = kul_jab
            CDEFS = $(STACK_DEF) $(AUTH_DEF) $(CLIENT_DEF) $(FILESERVICE_DEF)
         RESPCONT = 
    FRAMEWORKSDKDIR = C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0
    ALLUSERSPROFILE = C:\Documents and Settings\All Users
     DOWNLOAD_DEF = -DUSE_DLSM
               CC = $(COMPILER)
    		cl
     PROGRAMFILES = C:\Program Files
        MAKEFLAGS = DP                
     FRAMEWORKDIR = C:\WINDOWS\Microsoft.NET\Framework
    PROCESSOR_REVISION = 1706
     VCINSTALLDIR = C:\Program Files\Microsoft Visual Studio 8\VC
     COMPUTERNAME = ITEC-7E4BF035F6
               AS = ml
               RC = rc
    PROCESSOR_LEVEL = 6
     VSINSTALLDIR = C:\Program Files\Microsoft Visual Studio 8
    PROCESSOR_ARCHITECTURE = x86
               OS = Windows_NT
        HOMEDRIVE = C:
        STACK_DEF = $(TCP_DEF)
        DEVENVDIR = C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
        LIBSUFFIX = lib
           CLILIB = $(LIBDIR)\cli_$(NAMETAG).lib
           CFLAGS = 
        OBJSUFFIX = obj
           CLIINC = $(USERINC)\cliapi.h $(USERINC)\cli_cfg.h
           DELETE = -del
           REGLIB = advapi32.lib
           LIBDIR = $(BASE)\lib
        EXESUFFIX = exe
           RENAME = rename
           SCLLIB = $(LIBDIR)\cscl_$(NAMETAG).lib
           TAMLIB = $(LIBDIR)\tam_$(NAMETAG).lib
           OBJDIR = obj_$(NAMETAG)
           TCPLIB = $(LIBDIR)\1006_$(NAMETAG).lib
           TCPINC = $(USERINC)\rfc1006.h
           EXEDIR = $(BASE)\exes
           GOMDIR = $(BASE)\src\classlib
           MMSLIB = $(LIBDIR)\mmsc_$(NAMETAG).lib
           TARGET = $(STACKS)$(NAMETAG).$(EXESUFFIX)
           STACKS = tcp
        CD_SYSTEM = C:\Documents and Settings\All Users\Application Data\COPA-DATA\System\
           WINDIR = C:\WINDOWS
           WINDIS = $(BASE)\lib\ndif_$(NAMETAG).lib
           LIBOUT = /OUT:
    VS80COMNTOOLS = C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\
    FRAMEWORKVERSION = v2.0.50727
              LIB = C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;
              OBJ = $(OBJDIR)\$(STACKS)main.$(OBJSUFFIX)  $(OBJDIR)\state.$(OBJSUFFIX)  $(OBJDIR)\scl_cli.$(OBJSUFFIX)
       CLIENTNAME = Console
           PROMPT = $P$G
    CD_PROGRAMDATA6221 = C:\Documents and Settings\All Users\Application Data\COPA-DATA\zenon622\
              CPP = cl
       THREAD_DEF = -DTAM_USE_THREADS
              SRC = conmain.c  state.c  scl_cli.c
              LEX = $(BASE)\exes\flex
    FP_NO_HOST_CHECK = NO
       CLIENT_DEF = -DUSE_CLIENT
              TMP = C:\DOCUME~1\kul_jab\LOCALS~1\Temp
              CXX = cl
          FILELIB = $(LIBDIR)\file_$(NAMETAG).lib
       USERDOMAIN = ITEC-7E4BF035F6
          APPDATA = C:\Documents and Settings\kul_jab\Application Data
          TAMCLIB = $(LIBDIR)\tamc_$(NAMETAG).lib
          DIRMAKE = $(BASE)\src\make7
          NAMETAG = vc
       CD_PROGDIR = C:\Program Files\COPA-DATA\zenon 6.22 SP1\
          MAKEDIR = C:\TMW2\examples\sclclient
    
    
    INFERENCE RULES:
    
    .asm.obj::
    	commands:	$(AS) $(AFLAGS) /c $<
    
    .asm.exe:
    	commands:	$(AS) $(AFLAGS) $<
    
    .c.obj::
    	commands:	$(CC) $(CFLAGS) /c $<
    
    .c.exe:
    	commands:	$(CC) $(CFLAGS) $<
    
    .cc.obj::
    	commands:	$(CC) $(CFLAGS) /c $<
    
    .cc.exe:
    	commands:	$(CC) $(CFLAGS) $<
    
    .cpp.obj::
    	commands:	$(CPP) $(CPPFLAGS) /c $<
    
    .cpp.exe:
    	commands:	$(CPP) $(CPPFLAGS) $<
    
    .cxx.obj::
    	commands:	$(CXX) $(CXXFLAGS) /c $<
    
    .cxx.exe:
    	commands:	$(CXX) $(CXXFLAGS) $<
    
    .rc.res:
    	commands:	$(RC) $(RFLAGS) /r $<
    
    .SUFFIXES: .obj .asm .c .cc .cpp .cxx .f .f90 .for .rc 
    
    TARGETS:
    
    tcpvc.exe: 
    	flags:	-d 
    	dependents:	obj_vc\tcpmain.obj obj_vc\state.obj obj_vc\scl_cli.obj 
    			..\..\lib\1006_vc.lib ..\..\lib\tcli_vc.lib 
    			..\..\lib\cli_vc.lib ..\..\lib\tam_vc.lib ..\..\lib\tamc_vc.lib 
    			..\..\lib\mmsc_vc.lib ..\..\lib\file_vc.lib 
    			..\..\lib\cscl_vc.lib 
    	commands:	    $(LINK) $(LINKOUT)$(TARGET) @<<
    	$(OBJDIR)\$(STACKS)main.$(OBJSUFFIX)
    	$(OBJDIR)\state.$(OBJSUFFIX)
    	$(OBJDIR)\scl_cli.$(OBJSUFFIX)
    	$(LIBS)
    	$(WINDIS) $(SOCKLIB) $(REGLIB)
    <<NOKEEP
    
    install: 
    	flags:	-d 
    	dependents:	all 
    	commands:	
    
    obj_vc\state.obj: 
    	flags:	-d 
    	dependents:	state.c scl_cli.h database.h services.h ..\..\include\uca_time.h 
    			..\..\src\make7\tamvend.h ..\..\include\tam.h 
    			..\..\include\tam_tp.h ..\..\include\tam_con.h 
    			..\..\include\casm.h ..\..\src\make7\clivend.h 
    			..\..\include\cliapi.h ..\..\src\make7\mmsdapi.h 
    			..\..\include\rfc1006.h ..\..\include\cliapi.h 
    			..\..\include\cli_cfg.h 
    	commands:		$(CC) $(INCFLAGS) $(CFLAGS) @<<
    		    $(CDEFS)
    		    $(COMPOUT)$(OBJDIR)\state.$(OBJSUFFIX)
    		    state.c
    <<NOKEEP
    
    obj_vc\tcpmain.obj: 
    	flags:	-d 
    	dependents:	conmain.c database.h services.h scl_cli.h ..\..\include\uca_time.h 
    			..\..\src\make7\tamvend.h ..\..\include\tam.h 
    			..\..\include\tam_tp.h ..\..\include\tam_con.h 
    			..\..\include\casm.h ..\..\src\make7\clivend.h 
    			..\..\include\cliapi.h ..\..\src\make7\mmsdapi.h 
    			..\..\include\rfc1006.h ..\..\include\cliapi.h 
    			..\..\include\cli_cfg.h 
    	commands:		$(CC) $(INCFLAGS) $(CFLAGS) @<<
    		    $(CDEFS)
    		    $(COMPOUT)$(OBJDIR)\$(STACKS)main.$(OBJSUFFIX)
    		    conmain.c
    <<NOKEEP
    
    obj_vc\scl_cli.obj: 
    	flags:	-d 
    	dependents:	scl_cli.c scl_cli.h database.h services.h ..\..\include\uca_time.h 
    			..\..\src\make7\tamvend.h ..\..\include\tam.h 
    			..\..\include\tam_tp.h ..\..\include\tam_con.h 
    			..\..\include\casm.h ..\..\src\make7\clivend.h 
    			..\..\include\cliapi.h ..\..\src\make7\mmsdapi.h 
    			..\..\include\rfc1006.h ..\..\include\cliapi.h 
    			..\..\include\cli_cfg.h 
    	commands:		$(CC) $(INCFLAGS) $(CFLAGS) @<<
    		    $(CDEFS)
    		    $(COMPOUT)$(OBJDIR)\scl_cli.$(OBJSUFFIX)
    		    scl_cli.c
    <<NOKEEP
    
    all: 
    	flags:	-d 
    	dependents:	tcpvc.exe 
    	commands:	
    
    clean: 
    	flags:	-d 
    	dependents:	
    	commands:	    $(DELETE) $(OBJDIR)\$(STACKS)main.$(OBJSUFFIX)
    			    $(DELETE) $(OBJDIR)\state.$(OBJSUFFIX)
    			    $(DELETE) $(OBJDIR)\scl_cli.$(OBJSUFFIX)
    			    $(DELETE) $(TARGET)
    
    clobber: 
    	flags:	-d 
    	dependents:	clean 
    	commands:	
    
    
    Wed, Jul 01 2009 09:57:24       conmain.c
    Mon, Jan 26 2009 12:56:32       database.h
    Mon, Jan 26 2009 12:56:32       services.h
    Mon, Jan 26 2009 12:56:32       scl_cli.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\uca_time.h
    Mon, Jan 26 2009 12:56:34       ..\..\src\make7\tamvend.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\tam.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\tam_tp.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\tam_con.h
    Tue, Mar 31 2009 13:00:44       ..\..\include\casm.h
    Mon, Jan 26 2009 12:56:34       ..\..\src\make7\clivend.h
    Mon, Jan 26 2009 12:56:32       ..\..\include\cliapi.h
    Wed, Jul 01 2009 09:45:52       ..\..\src\make7\mmsdapi.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\rfc1006.h
    Mon, Jan 26 2009 12:56:32       ..\..\include\cliapi.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\cli_cfg.h
    Wed, Jul 01 2009 09:46:30     obj_vc\tcpmain.obj
    	cl /nologo /D:_MSC_VER=1 @..\..\vc.cfg /I..\..\src\make7 /I..\..\include  @C:\DOCUME~1\kul_jab\LOCALS~1\Temp\nm69.tmp
    conmain.c
    c:\tmw2\examples\sclclient\conmain.c(178) : warning C4996: 'strcpy' was declared deprecated
            c:\program files\microsoft visual studio 8\vc\include\string.h(73) : see declaration of 'strcpy'
            Message: 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
    c:\tmw2\examples\sclclient\conmain.c(181) : warning C4996: 'strcpy' was declared deprecated
            c:\program files\microsoft visual studio 8\vc\include\string.h(73) : see declaration of 'strcpy'
            Message: 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
    c:\tmw2\examples\sclclient\conmain.c(469) : warning C4996: 'strcpy' was declared deprecated
            c:\program files\microsoft visual studio 8\vc\include\string.h(73) : see declaration of 'strcpy'
            Message: 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
    c:\tmw2\examples\sclclient\conmain.c(470) : warning C4996: 'strcpy' was declared deprecated
            c:\program files\microsoft visual studio 8\vc\include\string.h(73) : see declaration of 'strcpy'
            Message: 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
    c:\tmw2\examples\sclclient\conmain.c(471) : warning C4996: 'strcpy' was declared deprecated
            c:\program files\microsoft visual studio 8\vc\include\string.h(73) : see declaration of 'strcpy'
            Message: 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
    c:\tmw2\examples\sclclient\conmain.c(495) : warning C4996: 'strcpy' was declared deprecated
            c:\program files\microsoft visual studio 8\vc\include\string.h(73) : see declaration of 'strcpy'
            Message: 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
    c:\tmw2\examples\sclclient\conmain.c(611) : warning C4996: 'kbhit' was declared deprecated
            c:\program files\microsoft visual studio 8\vc\include\conio.h(147) : see declaration of 'kbhit'
            Message: 'The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _kbhit. See online help for details.'
    c:\tmw2\examples\sclclient\conmain.c(634) : warning C4996: 'getch' was declared deprecated
            c:\program files\microsoft visual studio 8\vc\include\conio.h(145) : see declaration of 'getch'
            Message: 'The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.'
    Mon, Jan 26 2009 12:56:26       state.c
    Mon, Jan 26 2009 12:56:32       scl_cli.h
    Mon, Jan 26 2009 12:56:32       database.h
    Mon, Jan 26 2009 12:56:32       services.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\uca_time.h
    Mon, Jan 26 2009 12:56:34       ..\..\src\make7\tamvend.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\tam.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\tam_tp.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\tam_con.h
    Tue, Mar 31 2009 13:00:44       ..\..\include\casm.h
    Mon, Jan 26 2009 12:56:34       ..\..\src\make7\clivend.h
    Mon, Jan 26 2009 12:56:32       ..\..\include\cliapi.h
    Wed, Jul 01 2009 09:45:52       ..\..\src\make7\mmsdapi.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\rfc1006.h
    Mon, Jan 26 2009 12:56:32       ..\..\include\cliapi.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\cli_cfg.h
    Wed, Jul 01 2009 09:46:32     obj_vc\state.obj
    Mon, Jan 26 2009 12:56:26       scl_cli.c
    Mon, Jan 26 2009 12:56:32       scl_cli.h
    Mon, Jan 26 2009 12:56:32       database.h
    Mon, Jan 26 2009 12:56:32       services.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\uca_time.h
    Mon, Jan 26 2009 12:56:34       ..\..\src\make7\tamvend.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\tam.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\tam_tp.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\tam_con.h
    Tue, Mar 31 2009 13:00:44       ..\..\include\casm.h
    Mon, Jan 26 2009 12:56:34       ..\..\src\make7\clivend.h
    Mon, Jan 26 2009 12:56:32       ..\..\include\cliapi.h
    Wed, Jul 01 2009 09:45:52       ..\..\src\make7\mmsdapi.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\rfc1006.h
    Mon, Jan 26 2009 12:56:32       ..\..\include\cliapi.h
    Mon, Jan 26 2009 12:56:36       ..\..\include\cli_cfg.h
    Wed, Jul 01 2009 09:46:32     obj_vc\scl_cli.obj
    Wed, Jul 01 2009 09:46:06     ..\..\lib\1006_vc.lib
    Wed, Jul 01 2009 09:46:22     ..\..\lib\tcli_vc.lib
    Wed, Jul 01 2009 09:46:20     ..\..\lib\cli_vc.lib
    Wed, Jul 01 2009 09:45:34     ..\..\lib\tam_vc.lib
    Wed, Jul 01 2009 09:45:36     ..\..\lib\tamc_vc.lib
    Wed, Jul 01 2009 09:45:52     ..\..\lib\mmsc_vc.lib
    Wed, Jul 01 2009 09:45:52     ..\..\lib\file_vc.lib
    Wed, Jul 01 2009 09:46:30     ..\..\lib\cscl_vc.lib
    Wed, Jul 01 2009 09:46:34   tcpvc.exe
    	link /PROFILE /SUBSYSTEM:CONSOLE /debug /INCREMENTAL:NO /NODEFAULTLIB:libc /OUT:tcpvc.exe @C:\DOCUME~1\kul_jab\LOCALS~1\Temp\nm6A.tmp
    Microsoft (R) Incremental Linker Version 8.00.50727.42
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    obj_vc\tcpmain.obj 
    obj_vc\state.obj 
    obj_vc\scl_cli.obj 
    ..\..\lib\1006_vc.lib ..\..\lib\tcli_vc.lib ..\..\lib\cli_vc.lib ..\..\lib\tam_vc.lib ..\..\lib\tamc_vc.lib ..\..\lib\mmsc_vc.lib ..\..\lib\file_vc.lib ..\..\lib\cscl_vc.lib 
    ..\..\lib\ndif_vc.lib ws2_32.lib user32.lib advapi32.lib 
    tcpmain.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:REF' specification
    
     
    Last edited by a moderator: Jul 1, 2009
  4. shabbir

    shabbir Administrator Staff Member

    Joined:
    Jul 12, 2004
    Messages:
    15,375
    Likes Received:
    388
    Trophy Points:
    83
    Please try avoiding everything in attachment and I removed the log and moved inline as inline is far easier to read.
     
  5. jjplaw

    jjplaw New Member

    Joined:
    Jun 30, 2009
    Messages:
    8
    Likes Received:
    0
    Trophy Points:
    0
    Noted.

    thanks,
    jjplaw
     
  6. xpi0t0s

    xpi0t0s Mentor

    Joined:
    Aug 6, 2004
    Messages:
    3,009
    Likes Received:
    203
    Trophy Points:
    63
    Occupation:
    Senior Support Engineer
    Location:
    England
    What you're looking for here is the link line. This is right at the end of the file from line 332 onwards and the tmp file contains the lines that follow.

    This shows what is linked together to make the executable. There are 3 object files, presumably from the source, although I'm not clear why there was only one compile line (line 263) - did you really remove ALL intermediate objects?

    Anyway, after the three object files there is a list of libraries: 1006_vc.lib, tcli_vc.lib etc, and those are what you need to add to your project in Properties - Linker - Input - Additional Dependencies.
     
  7. jjplaw

    jjplaw New Member

    Joined:
    Jun 30, 2009
    Messages:
    8
    Likes Received:
    0
    Trophy Points:
    0
    Hi,

    you are right about the compile line.... There should be three...
    Behold my newbie-ness of extraordinary levels that caused it to only have one compile line:
    [1] I wasnt too sure what other intermediate files are there besides the obj files, so i started with a fresh copy of the source codes.
    [2] I have to run a batch file that builds the source codes for microsoft visual c environment.
    [3] Then i tried to build the particular example using nmake. Output to nmake shows that the exe is updated???
    [4] Looking at the log of the batch build process shows that it has already run nmake to build the example.
    [5] So i just changed a comment/line in one of the c files assuming nmake will recompile everything.
    [6] I posted that output to the post you see above.
    [7] After seeing your reply, i did a quick google search only to find out that makefiles only builds the files that have changed.
    [8] Then i just simply deleted the obj files and the exe, then run nmake again. I got the three compile lines as mentioned by you.

    I added the stated libraries into Properties-Linker-Input-Additional Dependencies, and i'm able to build the example successfully in VS2005 IDE.

    I assumed that when i added the folder containing the lib files in Properties-Linker-General-Additional Library Directories, VS will automically use all the lib in that folder if necessary just like when i'm adding Additional Include Directories. But i guess that didnt work because, unlike header files which are declared to be included in the c files itself, the lib files are not mentioned at all..right? So i have to add the names of the particular lib files as additional dependencies, which can be found from either VS default lib folder or additional lib folder.

    Am i correct with the above assumption? Want to get my basics correct (T_T)

    Thanks so much for your kind assistance and advice. Really appreciate it (^^,)

    Sincerely,
    jjplaw
     
  8. xpi0t0s

    xpi0t0s Mentor

    Joined:
    Aug 6, 2004
    Messages:
    3,009
    Likes Received:
    203
    Trophy Points:
    63
    Occupation:
    Senior Support Engineer
    Location:
    England
    > [5] So i just changed a comment/line in one of the c files assuming nmake will recompile everything.
    > [6] I posted that output to the post you see above.

    Yep, that's why I explicitly said "Remove all intermediate files." If you don't, then because of the way make works, this won't have the required effect. Next time a site-recognised expert asks you to do something specific, make sure you do that specific something exactly as specified because there's a good chance that expert knows what he is talking about (I've been programming as a hobby since 1981 and professionally for 20 years, on Windows, various Unix clones, VMS, embedded systems and microcomputers), and if you decide to make an assumption and do something different, that's fine as long as you declare that fact. Anyway in this case it wasn't a problem because it was mainly the link line I was after.

    > makefiles only builds the files that have changed

    Yes, that's why we use make files instead of simple batch files. If the dependencies are correctly setup in the makefile then any change to any file will be correctly incorporated into the relevant files to minimise the build time. This can be quite difficult to do with headers dependent on other headers.

    > VS will automically use all the lib in that folder if necessary

    No, you have to tell it what libraries to link into the executable. The point of the Additional Directories is to tell it where to find the libraries you specified. This is the same as the make file.

    > just like when i'm adding Additional Include Directories

    hmm, so your code doesn't have #include lines that specify which header files to include? Of course it does, and headers and libraries are identical in this respect - you specify what to include and where to find those files, and you can do that in one go with #include "/usr/include/foobar.h" or in two goes with #include "foobar.h" and -I/usr/include. Similarly with libraries you can specify on the link line /usr/lib/foobar.lib or you can specify it in parts with foobar.lib -L/usr/lib. The -I and -L settings are useful if you're including multiple files from the same directory.
     
    shabbir likes this.
  9. jjplaw

    jjplaw New Member

    Joined:
    Jun 30, 2009
    Messages:
    8
    Likes Received:
    0
    Trophy Points:
    0
    Noted. It'll never happen again...

    Respect! I did not mean in any slightest way to offend or disrespect you. I sincerely apologize.

    xpi0t0s, thank you for taking time to help me on my issue and to teach me.
    am grateful.
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice