Need help with compiling an app

Hi all.

Not sure if this is the right section…
I’m trying to compile and build a GC emulator called Dolphin. Already installed most of the necessary dependencies (Linux_Build - dolphin-emu - How to build dolphin on Linux - Dolphin, a Gamecube / Wii / Triforce Emulator - Google Project Hosting). But I’m getting these “errors” after running cmake:

– Looking for include files CMAKE_HAVE_PTHREAD_H
– Looking for include files CMAKE_HAVE_PTHREAD_H - found
– Looking for pthread_create in pthreads
– Looking for pthread_create in pthreads - not found
– Looking for pthread_create in pthread
– Looking for pthread_create in pthread - not found

What do they mean, and how can I solve it? Thank you.

Hi
So what were the lines preceding the error… what was it doing before hand in other words…

Did you meet all the devel requirements in the list at the bottom of the page;
Linux_Build - dolphin-emu - How to build dolphin on Linux - Dolphin, a Gamecube / Wii / Triforce Emulator - Google Project Hosting

Hi, mr. Malcolmlewis, and very thanks for answering.

No, I’m not meeting ALL the requirements. I’m missing codec libraries libavcodec, libavformat and libswscale, because probably I need their respective development (-devel) versions, which are nowhere to be found in Yast. I thought they should be in Packman, but they’re not. The same for libraries soil and sfml and, according to the log below, also a thing called libavutil. Haven’t been able to find them yet…

Also, I can’t be sure yet if I’m meeting correctly the other dependencies. The list in that site is suited for Ubuntu, packages differ from a distro to another. So I wonder if you can also give me please advise about this, if it’s not bothering.

Anyway, regarding the other lines, this is my entire log:

– The C compiler identification is GNU
– The CXX compiler identification is GNU
– Check for working C compiler: /usr/bin/gcc
– Check for working C compiler: /usr/bin/gcc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Check for working CXX compiler: /usr/bin/c++
– Check for working CXX compiler: /usr/bin/c++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Performing Test NO_UNUSED_RESULT
– Performing Test NO_UNUSED_RESULT - Success
– Performing Test VISIBILITY_INLINES_HIDDEN
– Performing Test VISIBILITY_INLINES_HIDDEN - Success
– Performing Test VISIBILITY_HIDDEN
– Performing Test VISIBILITY_HIDDEN - Success
– Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so
– Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found
– Looking for gethostbyname
– Looking for gethostbyname - found
– Looking for connect
– Looking for connect - found
– Looking for remove
– Looking for remove - found
– Looking for shmat
– Looking for shmat - found
– Looking for IceConnectionNumber in ICE
– Looking for IceConnectionNumber in ICE - found
– Found X11: /usr/lib64/libX11.so
– Try OpenMP C flag = -fopenmp]
– Performing Test OpenMP_FLAG_DETECTED
– Performing Test OpenMP_FLAG_DETECTED - Success
– Try OpenMP CXX flag = -fopenmp]
– Performing Test OpenMP_FLAG_DETECTED
– Performing Test OpenMP_FLAG_DETECTED - Success
– Found OpenMP: -fopenmp
OpenMP parallelization enabled
– Found ALSA: /usr/lib64/libasound.so
ALSA found, enabling ALSA sound backend
– checking for one of the modules ‘QUIET;ao’
– found ao, version 0.8.8
ao found, enabling ao sound backend
– checking for one of the modules ‘QUIET;bluez’
– found bluez, version 4.64
bluez found, enabling bluetooth support
– checking for one of the modules ‘QUIET;libpulse’
– found libpulse, version 0.9.21
PulseAudio found, enabling PulseAudio sound backend
OpenAL found, enabling OpenAL sound backend
X11 found
– checking for one of the modules ‘QUIET;xrandr’
– found xrandr, version 1.3.0
Xrandr found
– checking for modules ‘libavcodec>=52.72.2;libavformat>=52.64.2;libswscale>=0.11.0;libavutil>=50.15.1’
– package ‘libavcodec>=52.72.2’ not found
– package ‘libavformat>=52.64.2’ not found
– package ‘libswscale>=0.11.0’ not found
– package ‘libavutil>=50.15.1’ not found
libav not found, disabling AVI frame dumps
xdg-screensaver found, enabling screensaver inhibition
– Performing Test PORTAUDIO
– Performing Test PORTAUDIO - Failed
PortAudio not found, disabling mic support
– checking for one of the modules ‘QUIET;lzo2’
Using shared lzo
– Looking for include files CMAKE_HAVE_PTHREAD_H
– Looking for include files CMAKE_HAVE_PTHREAD_H - found
– Looking for pthread_create in pthreads
– Looking for pthread_create in pthreads - not found
– Looking for pthread_create in pthread
– Looking for pthread_create in pthread - not found
– Check if compiler accepts -pthread
– Check if compiler accepts -pthread - yes
– Found Threads: TRUE
Using shared SDL
– checking for one of the modules ‘QUIET;sfml-network’
Shared sfml-network not found, falling back to the static library
– checking for one of the modules ‘QUIET;soil’
Shared SOIL not found, falling back to the static library
– Found ZLIB: /usr/lib64/libz.so
Using shared zlib
– checking for one of the modules ‘QUIET;glew’
– found glew, version 1.5.8
GLEW found
– checking for one of the modules ‘QUIET;cg’
Cg found
– checking for one of the modules ‘QUIET;cggl’
CgGL found
– Found wxWidgets: TRUE
– Found GTK2_GTK: /usr/lib64/libgtk-x11-2.0.so
wxWidgets found, enabling GUI build
– Configuring done
– Generating done
– Build files have been written to: /home/jc_lara/Programas/dolphin-emu-read-only/Build

Also, since I’m new at this, I can’t tell yet from the log which ones can be considered as “errors” and “warnings”. By “error” I mean something that will prevent building and running, while “warning” would be a bypassable error which will not prevent building.

Hi
So it configured up fine looking at that log, it Found Threads: TRUE… if it didn’t complete the configure part, then that would be an issue.

Have you tried running the command make now?

Thank you for your help.

No, haven’t run make yet. According to the site, make would do a generic installation, putting the executable in a directory, plugins in another one and shared data in another one. The directories seem to be all inside /usr, but I’m afraid it could be the root /usr, and I don’t like to install things directly on root.

Or is it that default directories differ depending of what distro is? Because another program I built with make was default installed in /usr/loca/bin and /usr/local/sbin.

But the point is, I’d like to know if it’s possible to make an installation using make by specifying a particular directory to put all the files in, or if it’s just a matter of doing the generic installation and then just move and group the generated files.

Hi
You configure where you want the files to go at the configure command, default sets it to /usr /usr/lib /usr/share. Run the command ./configure --help should tell you where things are going.

Now the ‘make’ command just builds the application, doesn’t do any install until you run ‘sudo make install’, you configure and make as your user only, then you can run the command in your home directory, but you might have to set your LD_LIBRARY path environment variable.

So my suggestion is to run the make command to build, then try running it…

On 03/18/2011 08:36 PM, F style wrote:
>
> Thank you for your help.
>
> No, haven’t run make yet. According to the site, make would do a
> generic installation, putting the executable in a directory, plugins in
> another one and shared data in another one. The directories seem to be
> all inside /usr, but I’m afraid it could be the root /usr, and I don’t
> like to install things directly on root.
>
> Or is it that default directories differ depending of what distro is?
> Because another program I built with make was default installed in
> /usr/loca/bin and /usr/local/sbin.
>
> But the point is, I’d like to know if it’s possible to make an
> installation using make by specifying a particular directory to put all
> the files in, or if it’s just a matter of doing the generic installation
> and then just move and group the generated files.

why not do it the Linux way, rather than the way some other systems do
it? one system designed for home desktops and games (made in Redmond,
Washington, USA) puts everything in one directory…

while another system, designed for super computers, main frames and
industrial settings (Linux/Unix/AIX/Solaris/BSD and others) put all
the executables in one place, all the manuals in another, all the
libraries in a third place, all the logs in a place, and all the (say)
configuration files in another and and and and and…

so, i think a basic tutorial on the ‘standard’ Linux file system could
be useful before you begin making programs that install like they are
made for some other system–you might wanna read some here:

Chapter 3. General overview of the Linux file system
http://tille.garrels.be/training/tldp/ch03.html

here is the top of the guide and it is just chocked full of good info:
http://tille.garrels.be/training/tldp/

enjoy.


DenverD
CAVEAT: http://is.gd/bpoMD
[NNTP posted w/openSUSE 11.3, KDE4.5.5, Thunderbird3.1.8, nVidia
173.14.28 3D, Athlon 64 3000+]
“It is far easier to read, understand and follow the instructions than
to undo the problems caused by not.” DD 23 Jan 11

It depends on the value of --prefix, a configure option. The default is usually /usr for Linux (resulting in executables getting installed in /usr/bin, manpages in /usr/man/manX, other relevant files in /usr/lib, /usr/share etc), /usr/local for Unix or /usr/pkg for pkgsrc port applications (as in NetBSD, Darwin and DragonFly). Under Linux it is a good pratice - although debattable - to place applications not being part of the distro in /usr/local.

That’s the point of configure --prefix=/usr/local. Although if you choose an unusual path, il might not find the needed libraries. It’s also possible but a little bit more tricky then. As already mentionned, ./configure --help explains the options.

Well, finally built and installed. Seemed to work the app itself, but just at first sight. Anyway, I got some warnings when running make, this is a fragment of the log (I can’t post it entirely, but I think it’s the fragment of matter). What do you think?:

Scanning dependencies of target videocommon
 16%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/BPFunctions.cpp.o                                                                                 
 16%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/BPMemory.cpp.o                                                                                    
 17%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/BPStructs.cpp.o                                                                                   
 17%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/CPMemory.cpp.o                                                                                    
 17%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/CommandProcessor.cpp.o                                                                            
 17%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/DLCache.cpp.o                                                                                     
 18%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/Debugger.cpp.o                                                                                    
 18%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/Fifo.cpp.o                                                                                        
 18%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/FramebufferManagerBase.cpp.o                                                                      
 18%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/HiresTextures.cpp.o                                                                               
 19%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/ImageWrite.cpp.o                                                                                  
 19%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/IndexGenerator.cpp.o                                                                              
 19%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/LightingShaderGen.cpp.o                                                                           
 19%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/MainBase.cpp.o                                                                                    
 20%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/OnScreenDisplay.cpp.o                                                                             
 20%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/OpcodeDecoding.cpp.o                                                                              
 20%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/OpenCL.cpp.o                                                                                      
 20%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/OpenCL/OCLTextureDecoder.cpp.o                                                                    
 21%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/PixelEngine.cpp.o                                                                                 
 21%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/PixelShaderGen.cpp.o                                                                              
 21%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/PixelShaderManager.cpp.o                                                                          
/home/jc_lara/Programas/dolphin-emu-read-only/Source/Core/VideoCommon/Src/PixelShaderManager.cpp: In static member function ‘static void PixelShaderManager::SetConstants()’:       
/home/jc_lara/Programas/dolphin-emu-read-only/Source/Core/VideoCommon/Src/PixelShaderManager.cpp:307:38: warning: array subscript is above array bounds
/home/jc_lara/Programas/dolphin-emu-read-only/Source/Core/VideoCommon/Src/PixelShaderManager.cpp:307:38: warning: array subscript is above array bounds
 21%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/RenderBase.cpp.o
 22%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/Statistics.cpp.o                                                                                  
 22%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/TextureCacheBase.cpp.o                                                                            
 22%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/TextureConversionShader.cpp.o                                                                     
 22%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/TextureDecoder.cpp.o                                                                              
 23%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/VertexLoader.cpp.o                                                                                
 23%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/VertexLoaderManager.cpp.o                                                                         
In file included from /usr/include/c++/4.5/ext/hash_map:60:0,                                                                                                                       
                 from /home/jc_lara/Programas/dolphin-emu-read-only/Source/Core/VideoCommon/Src/VertexLoaderManager.cpp:23:
/usr/include/c++/4.5/backward/backward_warning.h:28:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
 23%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/VertexLoader_Color.cpp.o
 23%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/VertexLoader_Normal.cpp.o                                                                         
 24%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/VertexLoader_Position.cpp.o                                                                       
 24%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/VertexLoader_TextCoord.cpp.o                                                                      
 24%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/VertexManagerBase.cpp.o                                                                           
 24%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/VertexShaderGen.cpp.o                                                                             
 25%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/VertexShaderManager.cpp.o                                                                         
/home/jc_lara/Programas/dolphin-emu-read-only/Source/Core/VideoCommon/Src/VertexShaderManager.cpp: In static member function ‘static void VertexShaderManager::SetConstants()’:     
/home/jc_lara/Programas/dolphin-emu-read-only/Source/Core/VideoCommon/Src/VertexShaderManager.cpp:245:37: warning: array subscript is above array bounds
/home/jc_lara/Programas/dolphin-emu-read-only/Source/Core/VideoCommon/Src/VertexShaderManager.cpp:245:37: warning: array subscript is above array bounds
 25%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/VideoConfig.cpp.o
 25%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/VideoState.cpp.o                                                                                  
 25%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/XFMemory.cpp.o                                                                                    
 26%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/XFStructs.cpp.o                                                                                   
 26%] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/Src/memcpy_amd.cpp.o                                                                                  
Linking CXX static library libvideocommon.a                                                                                                                                         
 26%] Built target videocommon

And how do I use that --prefix option? I haven’t even understood whose that option is and how to use it. And I’m needing it because I don’t know where the plugins were installed. The executable and shared files are where the site says, but plugins are NOT in usr/local/bin.

Hi
Look at the install output? The configure --help will show where they would go based on if you used the --prefix option

Oh, sorry, that’s the other problem: the make install log was too long for my console window. It only showed the shared files part, not the plugins. Tried “make instal --help”, then “make instal -n” in the same directory the built files were created, to just show the instructions, but no luck.

EDIT: err… just found out that this Dolphin no longer uses plugins. Anyway, thank you all very much for your help. Hope I’m able to make the rest of my way…