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
> 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.
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
Please try avoiding everything in attachment and I removed the log and moved inline as inline is far easier to read.
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.
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
> [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.
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.