Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   Import Makefile settings to VS2005 IDE (http://www.go4expert.com/forums/import-makefile-settings-vs2005-ide-t18262/)

jjplaw 30Jun2009 08:40

Import Makefile settings to VS2005 IDE
 
3 Attachment(s)
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

xpi0t0s 1Jul2009 03:33

Re: Import Makefile settings to VS2005 IDE
 
> 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.

jjplaw 1Jul2009 07:30

Re: Import Makefile settings to VS2005 IDE
 
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


shabbir 1Jul2009 09:00

Re: Import Makefile settings to VS2005 IDE
 
Please try avoiding everything in attachment and I removed the log and moved inline as inline is far easier to read.

jjplaw 1Jul2009 09:10

Re: Import Makefile settings to VS2005 IDE
 
Noted.

thanks,
jjplaw

xpi0t0s 1Jul2009 13:49

Re: Import Makefile settings to VS2005 IDE
 
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.

jjplaw 1Jul2009 15:19

Re: Import Makefile settings to VS2005 IDE
 
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

xpi0t0s 1Jul2009 16:30

Re: Import Makefile settings to VS2005 IDE
 
> [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.

jjplaw 1Jul2009 19:36

Re: Import Makefile settings to VS2005 IDE
 
Quote:

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
Noted. It'll never happen again...

Quote:

I've been programming as a hobby since 1981 and professionally for 20 years, on Windows, various Unix clones, VMS, embedded systems and microcomputers
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.


All times are GMT +5.5. The time now is 10:05.