Discussion:
vs 2005, additional dependencies
(too old to reply)
Carl
2010-05-05 05:23:32 UTC
Permalink
Hi all,

I have several dlls for a testing project. Here is my setting for the
additional dependencies in .vcproj:

<Tool
Name="VCLinkerTool"
UseLibraryDependencyInputs="false" (true didn't work neither)
AdditionalDependencies="lib1.dll.a lib2.dll.a lib3.dll.a lib4.dll.a
lib5.dll.a"
LinkIncremental="0"
AdditionalLibraryDirectories="C:\msys\1.0\local\lib"
GenerateDebugInformation="true"
/>

Every time launching the debuger, the "entry point not found" error message
was showing up with "the procedure entry point lib2_function_1 could not be
located in the dynamic link library lib1.dll". It always searchs the first
library (lib1) in the dependencies list and repoted not found the function
even though all dlls are in the same bin directory indicated by the $PATH
variable.

What am I missing? Thanks in advance

-carl
Victor Bazarov
2010-05-05 12:25:13 UTC
Permalink
Post by Carl
I have several dlls for a testing project. Here is my setting for the
<Tool
Name="VCLinkerTool"
UseLibraryDependencyInputs="false" (true didn't work neither)
AdditionalDependencies="lib1.dll.a lib2.dll.a lib3.dll.a lib4.dll.a
lib5.dll.a"
LinkIncremental="0"
AdditionalLibraryDirectories="C:\msys\1.0\local\lib"
GenerateDebugInformation="true"
/>
Every time launching the debuger, the "entry point not found" error message
was showing up with "the procedure entry point lib2_function_1 could not be
located in the dynamic link library lib1.dll". It always searchs the first
library (lib1) in the dependencies list and repoted not found the function
even though all dlls are in the same bin directory indicated by the $PATH
variable.
What am I missing? Thanks in advance
Could you be missing the fact that the settings you supplied are for the
linker and you get the error from the debugger? IOW, those settings you
quoted here have no effect on the debugger. Could you be using
different .a files than the .dll files you supply for the exe? Try to
make sure that you're linking with the correct export libraries. Also,
make sure that you only have one place where your DLLs are. It's
possible that while you think they are loaded from "the same bin
directory", they are actually found in some other place.

V
--
I do not respond to top-posted replies, please don't ask
Carl
2010-05-06 22:05:49 UTC
Permalink
Thanks for the reply. After further digging, it's probably due to the dlls
were built on MinGW(crossplatform building env). Not confirmed yet...
Post by Victor Bazarov
Post by Carl
I have several dlls for a testing project. Here is my setting for the
<Tool
Name="VCLinkerTool"
UseLibraryDependencyInputs="false" (true didn't work neither)
AdditionalDependencies="lib1.dll.a lib2.dll.a lib3.dll.a lib4.dll.a
lib5.dll.a"
LinkIncremental="0"
AdditionalLibraryDirectories="C:\msys\1.0\local\lib"
GenerateDebugInformation="true"
/>
Every time launching the debuger, the "entry point not found" error message
was showing up with "the procedure entry point lib2_function_1 could not be
located in the dynamic link library lib1.dll". It always searchs the first
library (lib1) in the dependencies list and repoted not found the function
even though all dlls are in the same bin directory indicated by the $PATH
variable.
What am I missing? Thanks in advance
Could you be missing the fact that the settings you supplied are for the
linker and you get the error from the debugger? IOW, those settings you
quoted here have no effect on the debugger. Could you be using different
.a files than the .dll files you supply for the exe? Try to make sure
that you're linking with the correct export libraries. Also, make sure
that you only have one place where your DLLs are. It's possible that
while you think they are loaded from "the same bin directory", they are
actually found in some other place.
V
--
I do not respond to top-posted replies, please don't ask
James Cornell
2010-05-10 09:33:34 UTC
Permalink
Post by Carl
Hi all,
I have several dlls for a testing project. Here is my setting for the
<Tool
Name="VCLinkerTool"
UseLibraryDependencyInputs="false" (true didn't work neither)
AdditionalDependencies="lib1.dll.a lib2.dll.a lib3.dll.a lib4.dll.a
lib5.dll.a"
LinkIncremental="0"
AdditionalLibraryDirectories="C:\msys\1.0\local\lib"
GenerateDebugInformation="true"
/>
Every time launching the debuger, the "entry point not found" error message
was showing up with "the procedure entry point lib2_function_1 could not be
located in the dynamic link library lib1.dll". It always searchs the first
library (lib1) in the dependencies list and repoted not found the function
even though all dlls are in the same bin directory indicated by the $PATH
variable.
What am I missing? Thanks in advance
-carl
.a files are specific to gcc and are unusable as they are not in the
same format as what vcpp generates. You can't explicitly link against
alien .a object files with vc++, instead you could assume for a moment
that a finalized (debug or release) dll generated would suffice for
resolving the symbols.

For instance, building openssl under msys/mingw would eventually
generate a .dll, but again .a is not consumable by non-gnu tools. You'd
need to pull in all dependencies from source or find alternative
libraries linked against a comparable (but not newer) vcpp compiler.

James

Loading...