• 0

Compiling pthread program


Question

Hello, I am trying to compile a simple C program that uses pthreads. It's one of the tutorial examples at https://computing.llnl.gov/tutorials/pthreads , more precisley this : https://computing.llnl.gov/tutorials/pthrea...mples/condvar.c

First I tried it with Code::Blocks in my Ubuntu VM, but Code::Blocks says pthread is an undefined reference and when I try to open the include file (by right clicking <pthread.h> and clicking "open file" or something like that), it says the file can't be found. So I guess Code::Blocks doesn't know where it is. Furthermore, I tried the same with stdlib.h and others and it can't open any of them. How can I configure it so that it compiles properly ? I just created an empty C++ project and copy-pasted the code in main.cpp.

Next I tried in Visual Studio 2008 under Windows. Now, VS can open all the other include files alright, but not pthread.h, and upon compilation it will complain that it cannot open include file 'pthread.h'. A quick search on Google gives very little insight.

I just want to compile and run the damn thing, any environment/editor will do ! Thanks for your help.

Link to comment
https://www.neowin.net/forum/topic/749278-compiling-pthread-program/
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Just to add to my previous post :

Under Code::Blocks, although I cannot open any include file, programs that use standard C and C++ librairies run fine. Such as iostream and stdlib Hello Worlds.

The errors I get are all "undefined reference to 'pthread_create'.

I have tried adding -lpthread to the compiler options, but it didn't fix the problem.

  • 0

So in my stubberness, I managed to make the program compile under Code::Blocks. It involved adding the "pthread" library in the linker settings.

I still wonder if it's possible to do it under Visual Studio.

EDIT: just tried it with Code::Blocks under Windows this time. Adding the pthread library does absolutely nothing this time. Also, Code::Blocks seems to work more sensibly under Windows, for instance it opens include files correctly. But it won't open pthread.h, just like Visual Studio.

Edited by Dr_Asik
  • 0

Yeah you need to include pthread in the linker stage. I've used pthreads before but only under Linux and it's a bit different to how I included the library the last time I used it.

I use Dev C++ as my IDE and I first created a C project. I think it's still possible to do it under Visual

Studio though but I don't have any experience with it. Before getting it to work in Dev I downloaded the pthreads library from here. Looking at the read me

  Quote
Which of the several dll versions to use?

-----------------------------------------

or,

---

What are all these pthread*.dll and pthread*.lib files?

-------------------------------------------------------

Simple, use either pthreadGCv.* if you use GCC, or pthreadVCv.* if you

use MSVC - where 'v' is the DLL versioning (compatibility) number.

Otherwise, you need to choose carefully and know WHY.

So I then copied the header files (pthread, sched and semaphore) to the dev include library and put the pthreadGC2.dll in my project folder where the .exe will be created.

In Dev I then added -lpthreadGC2 at the linker stage and it compiled OK. Hope this helps.

edit: Never even noticed Mike got a post in before me :laugh:

Edited by ViZioN
  • 0

Visual Studio is a C++ compiler, I don't even think it is fully C89 compliant. But most new C99 features will not work in VS 2008, they are trying to follow C++ standards not C, any C code you should compile with GCC (MinGW32 on windows). Make sure to link any libraries supplied with the code, and a direct reference to the header file "pthread.h" should be made, not <pthread.h>.

  • 0
  chhavi said:
Hello,

I am using CodeBlocks and getting problem in the compilation of a thread program. It says "can not find pthread.h"

I tried adding "pthread" in the linker settings, still fails. Could you please let me know the solution to this problem.

Thanks in advance.

Follow my post above exactly. It was for Dev C++ not Code::Blocks but the process should be almost identical.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • I always disable animations in Windows using sysdm.cpl and yes, it feels faster. I have also reduced animations in my android phone using dev options.
    • Neowin's servers (hosted in the UK).
    • MacOS isn't Linux, but Proton is modified WINE, and WINE runs on MacOS. They would just need to add something like Box86 or Rosetta support.
    • PicPick 7.4.0 by Razvan Serea PicPick is user friendly and full of features for creating your image, suitable for software developers, graphic designers and the home user. It is an all-in-one program that provides a full-featured screen capture tool, intuitive image editor, color picker, color palette, pixel ruler, protractor, crosshair and even whiteboard. It not only has everything that you need, but it loads fast, and sits quietly in the system tray until needed. This software is provided as freeware for personal use only. In this case, you are granted the right to use this program free of charge. Otherwise, you need to pay for a license for commercial use. PicPick key features: For All Windows (Fully support Windows 11, 10, 8.1, 8, 7, Vista and XP both 32-bit and 64-bit) Multi-language is supported. (MORE 28+) All functions are fully supported on a dual screen environment. No Registry, No access to System folder (you can copy these files to portable USB) Screen Capture Auto-scroll, dual monitors and sound effect are supported Various output to File, Printer, Office programs, External program Sharing to FTP, Web, E-mail, Facebook and Twitter are supported as well Full Screen Active Window Window Control Scrolling Window Region, Fixed Region FreeHand Repeat Last Capture Image Editor Intuitive User Interface Windows Ribbon style Standard drawing, shapes, arrows, lines, text, and etc. Blur, sharpen, hue, contrast, brightness, pixelate, rotate, flip, frame effect and etc. Color Picker and Color Palette various color code type (RGB, HTML, C++, Delphi) Photoshop style RGB/HSV conversion is supported. Pick and Save your favorite color! Screen Pixel Ruler Horizontal and vertical orientation various units (Pixels, Inches, Centimeters) DPI setting (72, 96, 120, 300) colorful gradient skins You don't have to install any other screen ruler softwares. Screen Magnifier Zoom 2x to 10x option Stay on top, smooth display, and sizeable window Screen Protractor Have you seen any screen protractor function in other software? Screen Crosshair For aligning objects in graphics or design applications For calculating relative coordinates on screen Some prefer to use this tool than a pixel-ruler. Whiteboard For giving a presentation or just drawing something on screen PicPick 7.4.0 changelog: Added support for saving in WebP file format Added horizontal scrolling in the Image Editor with Shift and mouse wheel Fixed control capture failing to detect specific windows Fixed focus loss during delayed active-window captures. Download: PicPick 7.4.0 | 74.9 MB (Free for personal use only) Download: Portable PicPick 7.4.0 | 73.3 MB View: PicPick Home page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Stellarium 25.2 by Razvan Serea Stellarium is a free open source planetarium for your computer. It shows a realistic sky in 3D, just like what you see with the naked eye, binoculars or a telescope. It is being used in planetarium projectors. Just set your coordinates and go. Stellarium key features: Realistic simulation of the sky, sunrise and sunset Default catalogue of over 600,000 stars Downloadable additional catalogues for up to 210 million stars Catalog data for all New General Catalogue (NGC) objects Images of almost all Messier objects and the Milky Way Artistic illustrations for all 88 modern constellations More than a dozen different cultures with their constellations Solar and lunar eclipse simulation Photorealistic landscapes (more are available on the website) Scripting support with ECMAScript (a few demo scripts are included) Extendable with plug-ins: 8 plug-ins installed by default, including: artificial satellites plug-in (updated from an on-line TLE database) ocular simulation plug-in (shows how objects look like in a given ocular) Solar System editor plug-in (imports comet and asteroid data from the MPC) telescope control plug-in (Meade LX200 and Celestron NexStar compatible) The major changes of this version: Many changes in support of sky cultures Added 2 new plugins: Mosaic Camera and Custom Nebula Textures Many improvements in Core Updates in sky cultures (include new one) [full release notes] Download: Stellarium 25.2 (64-bit) | 361.0 MB (Open Source) View: Stellarium Home Page | Other Operating Systems | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • First Post
      Johnny Mrkvička earned a badge
      First Post
    • Week One Done
      viraltui earned a badge
      Week One Done
    • One Month Later
      serfegyed earned a badge
      One Month Later
    • Dedicated
      firey earned a badge
      Dedicated
    • Dedicated
      fettermanj earned a badge
      Dedicated
  • Popular Contributors

    1. 1
      +primortal
      649
    2. 2
      Michael Scrip
      224
    3. 3
      ATLien_0
      222
    4. 4
      Xenon
      146
    5. 5
      +FloatingFatMan
      143
  • Tell a friend

    Love Neowin? Tell a friend!