Thread overview
link problems
Jul 31, 2013
Manfred Nowak
Aug 04, 2013
Kai Nacke
Aug 04, 2013
Manfred Nowak
Aug 05, 2013
Kai Nacke
Aug 05, 2013
Manfred Nowak
July 31, 2013
Tried to build ldc as described in
  http://wiki.dlang.org/Building_and_hacking_LDC_on_Windows_using_MSVC

But no success:

Fehler beim Buildvorgang.

"C:\LDCenv\build-ldc2-x64\ALL_BUILD.vcxproj" (Standardziel) (1) ->
"C:\LDCenv\build-ldc2-x64\runtime\druntime-ldc.vcxproj" (Standardziel)
(6) ->
"C:\LDCenv\build-ldc2-x64\ldc2.vcxproj" (Standardziel) (8) ->
(Link Ziel) ->
  configfile.obj : error LNK2019: unresolved external symbol "public:
__cdecl l
ibconfig::Config::Config(void)" (??0Config@libconfig@@QEAA@XZ) referenced
in fu
nction "public: __cdecl ConfigFile::ConfigFile(void)" (??
0ConfigFile@@QEAA@XZ)
[C:\LDCenv\build-ldc2-x64\ldc2.vcxproj]
  configfile.obj : error LNK2019: unresolved external symbol "public:
__cdecl l
ibconfig::Setting::operator class std::basic_string<char,struct
std::char_trait
s<char>,class std::allocator<char> >(void)const " (??
BSetting@libconfig@@QEBA?A
V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
referenced in
 function "public: bool __cdecl ConfigFile::read(char const *,void *,char
const
 *)" (?read@ConfigFile@@QEAA_NPEBDPEAX0@Z) [C:\LDCenv\build-ldc2-x64
\ldc2.vcxpr
oj]
  configfile.obj : error LNK2019: unresolved external symbol "public:
class lib
config::Setting & __cdecl libconfig::Setting::operator[](int)const " (??
ASettin
g@libconfig@@QEBAAEAV01@H@Z) referenced in function "public: bool __cdecl
Confi
gFile::read(char const *,void *,char const *)" (?
read@ConfigFile@@QEAA_NPEBDPEA
X0@Z) [C:\LDCenv\build-ldc2-x64\ldc2.vcxproj]
  configfile.obj : error LNK2019: unresolved external symbol "public: int
__cde
cl libconfig::Setting::getLength(void)const " (?
getLength@Setting@libconfig@@QE
BAHXZ) referenced in function "public: bool __cdecl ConfigFile::read(char
const
 *,void *,char const *)" (?read@ConfigFile@@QEAA_NPEBDPEAX0@Z) [C:\LDCenv
\build
-ldc2-x64\ldc2.vcxproj]
  configfile.obj : error LNK2019: unresolved external symbol "public:
bool __cd
ecl libconfig::Setting::exists(char const *)const " (?
exists@Setting@libconfig@
@QEBA_NPEBD@Z) referenced in function "public: bool __cdecl
ConfigFile::read(ch
ar const *,void *,char const *)" (?read@ConfigFile@@QEAA_NPEBDPEAX0@Z)
[C:\LDCe
nv\build-ldc2-x64\ldc2.vcxproj]
  configfile.obj : error LNK2019: unresolved external symbol "public:
class lib
config::Setting & __cdecl libconfig::Config::lookup(char const *)const "
(?look
up@Config@libconfig@@QEBAAEAVSetting@2@PEBD@Z) referenced in function
"public:
bool __cdecl ConfigFile::read(char const *,void *,char const *)" (?
read@ConfigF
ile@@QEAA_NPEBDPEAX0@Z) [C:\LDCenv\build-ldc2-x64\ldc2.vcxproj]
  configfile.obj : error LNK2019: unresolved external symbol "public:
bool __cd
ecl libconfig::Config::exists(char const *)const " (?
exists@Config@libconfig@@Q
EBA_NPEBD@Z) referenced in function "public: bool __cdecl
ConfigFile::read(char
 const *,void *,char const *)" (?read@ConfigFile@@QEAA_NPEBDPEAX0@Z) [C:
\LDCenv
\build-ldc2-x64\ldc2.vcxproj]
  configfile.obj : error LNK2019: unresolved external symbol "public:
void __cd
ecl libconfig::Config::readFile(char const *)" (?
readFile@Config@libconfig@@QEA
AXPEBD@Z) referenced in function "public: bool __cdecl ConfigFile::read
(char co
nst *,void *,char const *)" (?read@ConfigFile@@QEAA_NPEBDPEAX0@Z) [C:
\LDCenv\bu
ild-ldc2-x64\ldc2.vcxproj]
  C:\LDCenv\build-ldc2-x64\bin\Debug\ldc2.exe : fatal error LNK1120: 8
unresolv
ed externals [C:\LDCenv\build-ldc2-x64\ldc2.vcxproj]

    0 Warnung(en)
    9 Fehler

-manfred
August 04, 2013
On Wednesday, 31 July 2013 at 19:29:45 UTC, Manfred Nowak wrote:
> Tried to build ldc as described in
>   http://wiki.dlang.org/Building_and_hacking_LDC_on_Windows_using_MSVC
>
> But no success:
>
> Fehler beim Buildvorgang.
>
> "C:\LDCenv\build-ldc2-x64\ALL_BUILD.vcxproj" (Standardziel) (1) ->
> "C:\LDCenv\build-ldc2-x64\runtime\druntime-ldc.vcxproj" (Standardziel)
> (6) ->
> "C:\LDCenv\build-ldc2-x64\ldc2.vcxproj" (Standardziel) (8) ->
> (Link Ziel) ->
>   configfile.obj : error LNK2019: unresolved external symbol "public:
> __cdecl l
> ibconfig::Config::Config(void)" (??0Config@libconfig@@QEAA@XZ) referenced
> in fu
> nction "public: __cdecl ConfigFile::ConfigFile(void)" (??
> 0ConfigFile@@QEAA@XZ)

Hi Manfred!

This is a problem with libconfig++. I can imagine 2 sources of errors here:

1) The path to libconfig++ on the cmake command line is wrong. This is the -DLIBCONFIG++_LIBRARY="..." parameter. Please note that the provided value is not checked by cmake.

2) It could also be a mismatch between static and dynamic compiled library. If you compile libconfig++ as DLL (the default) then you have to add -DLIBCONFIG_DLL=ON on the cmake command line.

I hope this helps.

Kai
August 04, 2013
Kai Nacke wrote:
> I hope this helps.

The hope vanished midst of flight.
1) the path was set correctly.
2) the error count increased from nine to thirteen.

-manfred

August 05, 2013
On Sunday, 4 August 2013 at 21:06:54 UTC, Manfred Nowak wrote:
> Kai Nacke wrote:
>> I hope this helps.
>
> The hope vanished midst of flight.
> 1) the path was set correctly.
> 2) the error count increased from nine to thirteen.
>
> -manfred

Ok, next try:

1) Regarding libconfig++: Did you create the x64 profile to compile for x64? Do you create a dynamic or static library? (BTW: I only tested linking against the static library.)

2) Regarding LDC: Could you please post your cmake commandline?

Kai
August 05, 2013
Kai Nacke wrote:
>  Did you create the x64 profile

Did not do this twice and forgot to report on that. By that: I am on win8/64.

where can I find the documentation for creating such profiles---or do you really want to baby-sit me (... and all other babes out there)?

2)
The .bat file for ldc:

md build-ldc2-x64
git clone git://github.com/ldc-developers/ldc.git ldc
cd ldc
git submodule update --init
cd runtime\druntime
git checkout -b ldc-latest
cd ..\phobos
git checkout -b ldc-latest
cd ..\..\..\build-ldc2-x64
cmake -G "Visual Studio 10 Win64"
 -DCMAKE_INSTALL_PREFIX="C:/Program Files/LDC"
 -DLLVM_ROOT_DIR="C:/Program Files/LLVM-x64"
 -DLIBCONFIG++_INCLUDE_DIR="C:/LDCenv/libconfig-1.4.9/lib"
 -DLIBCONFIG++_LIBRARY="C:/LDCenv/libconfig-1.4.9/Debug/libconfig++.lib"
 C:\LDCenv\ldc
msbuild ALL_BUILD.vcxproj
cd ..

-manfred