[cmake-developers] Trouble with FindPNG module

Roger Leigh rleigh at codelibre.net
Mon Apr 24 14:17:39 EDT 2017


On 24/04/2017 15:54, Robert Dailey wrote:
> Sorry to bump; any info on this? I'm completely blocked :-(
>
> On Fri, Apr 21, 2017 at 4:48 PM, Robert Dailey <rcdailey.lists at gmail.com> wrote:
>> I'm running CMake 3.8.0 on Ubuntu 14. I invoke the following:
>>
>> find_package(PNG REQUIRED)
>>
>> Which gives me the output in CMake:
>>
>> Could NOT find PNG (missing: PNG_LIBRARY) (found version "1.2.50")
>>
>> The CMakeCache.txt file has these variables set:
>>
>> PNG_LIBRARY_DEBUG:FILEPATH=PNG_LIBRARY_DEBUG-NOTFOUND
>> PNG_LIBRARY_RELEASE:FILEPATH=PNG_LIBRARY_RELEASE-NOTFOUND
>> PNG_PNG_INCLUDE_DIR:PATH=/usr/include
>>
>> So it found the headers, but not the libs. Why did it not find the
>> libs? Note that my version of Ubuntu is 64-bit, and I've installed the
>> 32-bit libs like so:
>>
>> $ sudo apt-get install libpng12-dev:i386
>>
>> Would the find module be confused because it is trying to find the
>> 64-bit library? What's the issue?

Sounds like that's exactly the problem.  You can only have one libpng 
*development* package installed at once.  You probably want the regular 
"libpng-dev" package installed if you want to build against the standard 
libpng.

What's your goal here?  Why did you install a single i386 development 
package?

If you want to build i386 binaries, it's usually simpler to build in a 
virtual machine, i.e. a chroot, container, full VM or whatever you like, 
where you have a fully 32-bit environment.  The multiarch library 
support is primarily intended for *deploying and running* 32-bit code 
rather than development.  While you can use it for development, it gets 
painful due to the conflicts with the headers and other bits in the 
native development packages.


Regards,
Roger



More information about the cmake-developers mailing list