Unable to build setup.exe: undefined reference to `_IID_IPersistFile'

Ken Brown kbrown@cornell.edu
Mon Nov 8 12:45:00 GMT 2010


On 11/7/2010 8:18 PM, Charles Wilson wrote:
> On 11/7/2010 6:41 PM, Ken Brown wrote:
>> -lole32 -lwsock32 -lnetapi32 /usr/lib/libuuid.a -L/lib -L/usr/lib
>                                 ^^^^^^^^^^^^^^^^^^
>> /usr/lib/libintl.a /usr/lib/libiconv.a /usr/lib/mingw/liblzma.a -lbz2
>> -lz -lmingw32
>> mklink2.o: In function `make_link_2':
>> /usr/src/cygsetup/setup/mklink2.cc:32: undefined reference to
>> `_IID_IPersistFile'
>>
>> Am I missing some library?  I've installed all the packages mentioned in
>> the README.
>
> The main problem is, you're using the cygwin 4.5 compiler in its
> "cygwin" mode to compile; this causes, among other things, to use the
> /usr/lib/libuuid.a library instead of the /usr/lib/w32api/libuuid.a one
> you really want.
>
> Take a close look at the "bootstrap" script.  Unless you have a mingw
> cross compiler installed, you probably should explicitly use 'gcc-3
> -mno-cygwin' and 'g++-3 -mno-cygwin' as your CC and CXX.

The bootstrap script already sets CC and CXX this way as of Yaakov's 
changes of August 11.  You can see 'g++-3 -mno-cygwin' in the link 
command that I quoted in my original post.  There must be some other 
reason that /usr/lib/libuuid.a is used.

Here's the build command right before the one I quoted, in case it 
provides some clue:

/bin/sh ./libtool --tag=CXX   --mode=link g++-3 -mno-cygwin -Werror 
-Wall -Wno-uninitialized -Wpointer-arith -Wcomments -Wcast-align 
-Wwrite-strings -g -O2 -mwindows -Wc,-static -static-libtool-libs  -o 
setup.exe AntiVirus.o archive.o archive_tar.o archive_tar_file.o 
autoload.o choose.o compress.o compress_bz.o compress_gz.o compress_xz.o 
ConnectionSetting.o ControlAdjuster.o crypto.o cygpackage.o desktop.o 
dialog.o diskfull.o download.o Exception.o find.o FindVisitor.o 
filemanip.o fromcwd.o geturl.o gpg-packet.o ini.o IniDBBuilderPackage.o 
inilex.o iniparse.o IniParseFeedback.o IniParseFindVisitor.o install.o 
io_stream.o io_stream_cygfile.o io_stream_file.o io_stream_memory.o 
KeysSetting.o localdir.o LogFile.o LogSingleton.o main.o mkdir.o 
mklink2.o mount.o msg.o net.o netio.o nio-ie5.o nio-file.o nio-ftp.o 
nio-http.o package_db.o package_meta.o package_source.o 
package_version.o PackageSpecification.o PickCategoryLine.o 
PickPackageLine.o PickView.o postinstall.o postinstallresults.o prereq.o 
proppage.o propsheet.o res.o root.o ScanFindVisitor.o script.o 
setup_version.o simpsock.o site.o source.o SourceSetting.o splash.o 
state.o String++.o threebar.o UserSettings.o win32.o window.o 
csu_util/MD5Sum.o csu_util/rfc1738.o csu_util/version_compare.o 
libmd5-rfc/md5.o libgetopt++/libgetopt++.la -lgcrypt -lgpg-error 
-lshlwapi -lcomctl32 -lole32 -lwsock32 -lnetapi32 -luuid -llzma -lbz2 
-lz  -lmingw32

Ken



More information about the Cygwin-apps mailing list