Using Libraries in C++ (Static Linking)

Sdílet
Vložit
  • čas přidán 29. 08. 2024
  • Patreon ► / thecherno
    Twitter ► / thecherno
    Instagram ► / thecherno
    Discord ► thecherno.com/...
    Series Playlist ► thecherno.com/cpp
    Thank you to the following Patreon supporters:
    - Samuel Egger
    - Dominic Pace
    - Kevin Gregory Agwaze
    - Sébastien Bervoets
    Gear I use:
    -----------------
    BEST laptop for programming! ► geni.us/pakTES
    My FAVOURITE keyboard for programming! ► geni.us/zNhB
    FAVOURITE monitors for programming! ► geni.us/Ig6KBq
    MAIN Camera ► geni.us/t6xyDRO
    MAIN Lens ► geni.us/xGoDWT
    Second Camera ► geni.us/CYUQ
    Microphone ► geni.us/wqO6g7K

Komentáře • 405

  • @ryleypowell8164
    @ryleypowell8164 Před 6 lety +934

    Would love to see a video that explains "Make" files and using things such as CMake

    • @groberti
      @groberti Před 5 lety +31

      That would be great, "Makefiles" are pretty complicated imho

    • @iamk5686
      @iamk5686 Před 5 lety +11

      @@groberti 100%

    • @iamk5686
      @iamk5686 Před 5 lety +16

      @@groberti Especially for beginners

    • @lordangus77
      @lordangus77 Před 5 lety +41

      I'm agree!! what if we don't use visual studio?

    • @lordangus77
      @lordangus77 Před 5 lety +6

      Would be great see how to do this with cmake

  • @serkanozturk4217
    @serkanozturk4217 Před rokem +46

    Personal Notes:
    - There are two parts in a library usually: includes and libraries. İnclude directory has a bunch of header files and lib directory has those pre-built binaries.
    - Dynamic library is loaded(linked) into program at runtime, dynamic library can be anywhere and you do the linking whereas static library is put(compiled) into your executable program
    - We have to point our compiler to header files (include files) and then we also have to point out our linker to library files.

    • @zvxcvxcz
      @zvxcvxcz Před rokem

      And don't forget the library names :P

  • @ags0004
    @ags0004 Před 5 lety +162

    0:32 "its pretty simple!" said no CMake user ever!

  • @svenbtb
    @svenbtb Před rokem +8

    I know I've probably already said this 100 times but thank you so much for all of your videos, they seriously help me so much. A lot of people who program aren't the best writers lol so it's really hard for me to follow along with most textbooks and written content from MIT, but watching you and hearing your clear explanations and SEEING how things work is so, so helpful, and makes it easier for me to code along with your examples (and pause the video to experiment if I have a "What if I do this?" moment) and to have it stick in my mind better

  • @RandomGuyyy
    @RandomGuyyy Před 7 lety +235

    I'd be interested to see the "importing source code into another project in the same solution and compiling it to a static library" video.

  • @matheuspinheirodesousa7911
    @matheuspinheirodesousa7911 Před 6 lety +215

    1:37 watching on a linux platform, a windows sound echoes
    wtf?

  • @jhfoleiss
    @jhfoleiss Před 4 lety +19

    Coming from a GNU background I always found Visual Studio projects confusing to setup. This video cleared a lot of my confusion about using external libraries. Thanks!

    • @zvxcvxcz
      @zvxcvxcz Před rokem +1

      Yeah, dealing with IDEs is always such a mess... the syntax highlighting is nice though. I find things like Sublime to be a nice middle ground.

  • @zxnnightstalker2289
    @zxnnightstalker2289 Před 3 lety +7

    nothing clear than that.
    the best c++ channel ever.
    I love the idea of explaining with eye contact.

  • @tomaustin9166
    @tomaustin9166 Před rokem +16

    Cherno, you are the only person that has made this make sense. You're an incredible teacher.

  • @anantj18
    @anantj18 Před 5 lety +18

    Wow this is amazing!!! I spent more than 8 hours trying to create libraries using the GLFW source code and Cmake. This was so much simpler, and he actually explained how the linkers work. Kudos to you man !!!

    • @Tiogar60
      @Tiogar60 Před 4 lety

      Anant Jain same ahaha

    • @mario_luis_dev
      @mario_luis_dev Před 2 lety

      you find this simpler than using CMake? You’re out of your mind

    • @anantj18
      @anantj18 Před 2 lety

      @@mario_luis_dev No

  • @snuffbox2006
    @snuffbox2006 Před rokem +1

    great video. It often feels like so many other resources assume that one has this knowledge "a priori" and then you are stuck. You've shown that it is not that difficult, but one needs to learn it.

  • @nextlifeonearth
    @nextlifeonearth Před 7 lety +96

    1:37
    Windows wants to tell you something.

    • @tezza48
      @tezza48 Před 6 lety +2

      no sound drivers, makes sense hehe

    • @jason-ps6mf
      @jason-ps6mf Před 5 lety +12

      I thought it was the sound of my computer :>)

    • @tezza48
      @tezza48 Před 5 lety

      @Andrew Alfazy you didn't hear the ba dum tsss.

    • @ags0004
      @ags0004 Před 5 lety +2

      @Andrew Alfazy in plain 2018 Linux still hasn't got stable NVida support

    • @michaelprantl1866
      @michaelprantl1866 Před 5 lety

      You heard it too, hm?

  • @mario_luis_dev
    @mario_luis_dev Před 2 lety +3

    man… Windows is such a clunky OS. This would’ve been a million times cleaner if it had been done on either Linux or MacOS

  • @eyalpery8470
    @eyalpery8470 Před 4 lety +3

    Very good video!
    For the Linux users -
    Static lib (".lib") is ".a" (Archive) in Linux and dynamic lib (".dll") is ".so" (Shared Object).

  • @danieldrew2356
    @danieldrew2356 Před 3 lety +8

    I've been going through this series one video at a time, and it feels so rewarding to finally be covering libraries!

  • @jimmylander2089
    @jimmylander2089 Před 4 lety +1

    Nobody at university shows you this stuff. If I weren’t proactive in my studies I’d still be stuck writing cli programs. We’ve covered 3 languages and no one’s touched upon the topic of third party libraries. The closest we’ve gotten to an explanation was “just do ‘pip install’ and the manager will handle it” (python). No mention on basic stuff like having ‘requirements.txt’ or using virtual environments (especially on Linux).
    So in conclusion: Thanks for the awesome videos! Really helpful

  • @Djzaamir
    @Djzaamir Před 7 lety +16

    Great stuff as always , and yes linking libs from source code video would be a nice add to this series

  • @_slier
    @_slier Před 4 lety +41

    this is the crap that hindering me from using c++ for years...i basically stuck with console apps...

    • @MrDe0
      @MrDe0 Před 3 lety

      @@SJKKA GL 😂👌

    • @xyz8206
      @xyz8206 Před 3 lety +4

      @@SJKKA use vs code, it is more transparent, you will learn a lot cuz you have to do it manually using .json files but it takes lot time. It took me 4 months.

    • @sleep3017
      @sleep3017 Před 3 lety

      @@xyz8206 How do you do it with .json files. Can you link an article or something?

  • @h.hristov
    @h.hristov Před 7 lety +29

    Thank you for going in depth. I watch all your videos to the end.

  • @jeanahollings
    @jeanahollings Před 2 lety +2

    people who judge you for waving your hands, have never been in a position to see themselves in action. i put up a mirror at work so people couldn't surprise me. i knew i was a bit of a cartoon character before that. now i'm sure.

  • @ramendude4062
    @ramendude4062 Před rokem +2

    hello, I am enjoying your tutorials, but at 12:10 the include is showing me an error saying "cannot open source file GLFW/glf3.h" any help would be appreciated. the compiler error is C:\Users\Name\Desktop\CppDev\projects\ProjectSol\Project1\test.cpp(5,9): fatal error C1083: Cannot open include file: 'GLFW/glfw3.h>': No such file or directory

  • @Nevarek_
    @Nevarek_ Před 2 lety +2

    It's not that Mac/Linux particularly love building code, though some people do really just like compiling everything from source for whatever reason that suits them. In which case the statement is accurate. There are other common cases to consider. I'll elaborate with a few examples.
    It's often the case (in some fields) that you will be targeting a different architecture and are building an executable for another computer to run. You can be building a project for proprietary hardware like an embedded system. This one is pretty easy to understand, your computer has a lot of extra stuff compared to, say, a smart lightbulb. Or manufacturing equipment that makes paperclips using various sensors and actuators.
    Even traditional application development runs into issues, now that some 32-bit architectures are being deprecated. MacOS stopped supporting 32-bit architectures completely. Some libraries are only to be used on 32-bit systems and you have to unfortunately re-build ancient code to support a 64-bit architecture, and sometimes you'll have to rewrite sections of it. Hence why handing someone a library file that can't be run would be a waste of time.
    Another situation most people will run into is building an executable for a Raspberry Pi to run. It's going to use a different architecture than a typical computer because the hardware is just different (hence the intrigue of having a Raspberry Pi). You'll probably need to build a lot of dependencies from source if you want to use other people's code. You absolutely do not want to compile a large project on your Raspberry Pi. Why? Because it will take like five hours.

  • @seayellow5834
    @seayellow5834 Před 2 lety

    A really great thing about your video is that you not only tell us what and why to do, but also conduct those little experiments that deepen our understanding. Well done.

  • @tooru
    @tooru Před 4 lety +5

    "I just want things y work" oh, a man of culture, I see

  • @noahfowler1
    @noahfowler1 Před 5 lety +118

    18min video on linking a lib... This is whats wrong with C++

    • @wamxfl1p653
      @wamxfl1p653 Před 5 lety +15

      Noah Fowler And that's only explaining the basics lol.

    • @kushalchordiya7229
      @kushalchordiya7229 Před 5 lety +7

      Hopefully when c++ 20 adds modules it'll solve this problem ... hopefully

    • @mauricestardddude8317
      @mauricestardddude8317 Před 5 lety +13

      That's because it' actually in-depht and doesn't just say:
      "Do this then don"
      Had too many times people "explained" it like that but it just ended up in me having no clue what to do because it actually didn't work
      And yes, also happened in java multiple times, to be percice: more often even

    • @ksawery6568
      @ksawery6568 Před 5 lety

      settle down mr

    • @tomwozne
      @tomwozne Před 6 měsíci +1

      No the problem is this guy is massively long winded. The intro was way too long, we all know what we're looking for we didn't need the intro talking about his haircut.

  • @triangleangle
    @triangleangle Před 5 lety +4

    Dude ..you are a dude of cpp...love to see your videos..i hated cpp but whenever i feel that way i watch your videos...and my perspective changes..👍

  • @flamendless
    @flamendless Před 5 lety +18

    Yes please, make a c++ tutorial video about linking and building the project that ide-independent, using Makefile or Cmake

    • @guestimator121
      @guestimator121 Před 5 lety +2

      Since he works for the EA, that would cost you extra :P

  • @artinzareie4806
    @artinzareie4806 Před 11 měsíci

    Oh God after some years of confusion with C++ Libraries finally a video that worths it. God thanks

  • @valerii-barabanov-vvb
    @valerii-barabanov-vvb Před 3 lety +1

    In lesson 49, I finally understood the movement of the hand at the end of the video, this is in order to give high five to Cherno through the monitor))

  • @visintel
    @visintel Před 2 lety +3

    I think CMake videos would be super helpful for people on Linux and Mac. Thanks for the great content!

  • @user-eg8me4hx5x
    @user-eg8me4hx5x Před 3 lety

    Apart from the quality of the video, the like is for the statement "you should have everything you need, straightaway, to compile and run"! That's always a big hustle with github projects!

  • @nathannlatimore7863
    @nathannlatimore7863 Před 4 lety +4

    I really enjoyed this tutorial as always. However, I will say that I was pretty confused in the earlier parts of the video. I'd still consider myself kind of a beginner so when GLFW was brought up, I had to go on my own learning-tangent to find out what openGL and GLFW were.

  • @itsjustarainyday
    @itsjustarainyday Před rokem

    He kept that notification at 1:38 for the trolol xD

  • @EMB3D
    @EMB3D Před 2 lety +1

    1:00 i completely agree, i also hate linking 3rd libraries, but be careful to distribute other source code within your project repo, it might just go against their end user agreement

  • @BetaNegative
    @BetaNegative Před 2 lety +3

    I got these errors:
    · Warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
    · Error LNK2019: unresolved external symbol __imp__glClear@4 referenced in function _main
    I managed to fix them going to *Properties > Linker > Input > Additional Dependencies* and adding
    · opengl32.lib

  • @luisfernando262
    @luisfernando262 Před 5 lety +2

    Amazingly detailed yet to the point. Thanks so much man

  • @marcogallone_wosler
    @marcogallone_wosler Před rokem

    This one saved me, I was stuck for 2 weeks with the same linking error, thanks Cherno

  • @ghostboxer5015
    @ghostboxer5015 Před 4 lety

    I programmed in c# the last 4 years but I still got stuck trying to transition to C++.
    This video was clear and got me up and running. I wasted hours before I saw this and would have wasted more time if I hadn't seen this video.
    I'm going to put the cherno on my tool bar.

  • @Steven-tw7iz
    @Steven-tw7iz Před 7 lety +12

    Please make a video on building from source! I'd love to see how you approach it! Most people I use use cmake

  • @kiranchowdary8100
    @kiranchowdary8100 Před 7 měsíci +1

    thank you for existing

  • @feraudyh
    @feraudyh Před 7 lety +14

    Hi Cherno (Bill?). When you get to dynamic libraries in a future video, could you point out the differences between *nix and Windows in this regard. In particular why Linux likes things like theshared.so, theshared.so.1 and perhaps even theshared.so.0.1. Oh and there's ldconfig (?).
    Keep up the great videos, you are very good at explaining things.

    • @smileynetsmileynet7922
      @smileynetsmileynet7922 Před 4 lety +1

      Yes please. Please go over linux dynamic linking. And maybe also other dynamic linking, such as in your own os.

  • @maximchernyshov7754
    @maximchernyshov7754 Před 2 lety

    At this point I am just liking these videos automatically. 31 seconds into the video I remembered that I need to like it... only to realise that I already did

  • @FedJimSmith
    @FedJimSmith Před 4 lety +1

    why??? Package Manager is a great idea, you don't have to maintain by yourself the code that you need that others write

  • @funkynicco
    @funkynicco Před 7 lety +3

    Actually the version of visual studio a library was built with does matter because the binary may reference older SDK, linking to older libraries. And you might run into conflict issues when mixing different versions. It may work fine for some libraries like GLFW but it should in general case be discouraged. You'll know you're getting conflict errors in form of somewhat descriptive linker errors.
    If the library API is only passing primitive types (int, bool, etc) then there shouldn't be an SDK conflict but if you have a library taking in anything from STD/STL as parameters or return values then the memory layout may have been changed across SDK versions.
    Linux have bigger issues with binary compatibility model (linking to linux libraries) due to being updated so frequently, which is why the compile-it-yourself is so common on linux (apart from open source community).

    • @jordanstafford5110
      @jordanstafford5110 Před 9 měsíci

      Doesn’t work for glfw anymore, the glfw3.lib file isn’t static only anymore, apparently glfw3_mt.lib is the static build lib now

  • @Villentrethenmerth
    @Villentrethenmerth Před 4 lety

    Watching this in 2020, but I believe this series will be around for many years to come.

  • @shvideo1
    @shvideo1 Před 2 lety

    What a great video on this topic. Perfect explanation. Helps avoid a lot of pitfalls by understanding the steps. Thank you for sharing.

  • @ArtemShoobovych
    @ArtemShoobovych Před 5 lety +1

    I can totally understand your pain with hating the current situation with C++ projects' dependencies (had sh*t load of problems trying to get my old projects using Irrlicht engine, for example, compiled years after I wrote that code). But the problem with the approach you are demonstrating (which I used to use too, just years ago) is that if you were about to use a different OS, a different IDE version (imagine trying to open VS 2008 project in VS 2017, which was similar to my case) or even a different IDE (QTCreator, for instance) - you're screwed up. Solution generators (CMake, for instance) can solve this problem, but I hate it as well. But since there is no sane alternative (Bazel / Buck also suck at cross-platform setup), it is waaay better than clicking through the options in your solution for your very specific VisualStudio version.

  • @segfault-
    @segfault- Před 3 lety

    Why? Why would you dislike his videos? I just fail to comprehend why one would decide to give this incredible guy a dislike. He makes easy to understand, enjoyable and FREE videos that have helped so many people, including me, grow so much as a programmer. Almost all of his videos get not a lot of likes and quite a large amount of dislikes. So, please enlighten me. Why?

  • @mikeorioles
    @mikeorioles Před rokem

    Another great video. Now I finally know the difference between static and dynamic libraries, and don't have to scratch my head haha.
    Thanks!

  • @siddharthkumar7561
    @siddharthkumar7561 Před 4 lety

    First of, your videos are just the best I ever came across on C++ (atleast for me). And, love your long videos, please do more of in-depth. Learning a lot from you. Thanks

  • @jonathanpeters9271
    @jonathanpeters9271 Před 5 lety +2

    I'm definitely interested in building the source code for dependent libraries! Please make that video!

  • @student99bg
    @student99bg Před rokem +1

    "GLFW binaries have nothing to do with your OS" I don't know if they have to do with my OS, or with my mingw GCC compiler but when I downloaded 32bits GLFW binaries they didn't work. I had to download 64bits binaries in order for it to work on my machine (I have x86_64 windows 7).

  • @zvxcvxcz
    @zvxcvxcz Před rokem

    Hmm, this is mostly covering using a static library, but not to build your code statically. All sorts of fun issues one can run into there. Was just trying to static compile my program recently with GLEW and had -lGL in my g++ line... lol, of course that didn't work. And so I learned how to get g++ to compile just some dependencies manually (using '-Wl,' before the libraries you can to apply an option to and having that option be -Bstatic and -Bdynamic respectively. Like: g++ myprogram.cpp -o MyProgram -I someFolder -L somelibFolder -L someotherlibFolder -Wl,-Bstatic -lsomestaticlib -Wl,Bdynamic -lsomedynamiclib For those that aren't aware -lGL is provided by the GPU driver... so it's not going to be static or portable.
    Some other things that aren't static build friendly: dlopen(), a lot of network libraries, e.g. curl.

  • @a740g
    @a740g Před 2 lety

    I've started liking nuget packages in VS since it now supports native libraries.

  • @alexandergonzalez5975
    @alexandergonzalez5975 Před 6 lety

    I had to watch this video twice and read two articles to help, but now I fully understand thank you Cherno!

  • @worlordv
    @worlordv Před 4 měsíci

    Super good. Thanks.

  • @Xx_McJasper_xX
    @Xx_McJasper_xX Před 3 lety +2

    Man, this stuff is still confusing to me and I've had courses in C and C++. Thanks for the deep dives. I love it, and can't wait to start the Game Engine series.

  • @christopherwilliams3293
    @christopherwilliams3293 Před rokem +1

    You earned yourself a subscriber from me. Thank-you!

  • @collengura
    @collengura Před 3 lety

    Your videos are very good and well presented. You have changed my view about C++. Thank you.

  • @aviandragon1390
    @aviandragon1390 Před 5 lety

    Oh my god thank you so much. This is exactly what I needed. I'm not used to using visual studio and I just wanted to compile using a library from a third party. Hooray!

  • @Caosthereal
    @Caosthereal Před rokem

    i think the best way would be a package manager that copys the libraries in an "libraries" folder in your project

  • @CViniciusSDias
    @CViniciusSDias Před 3 lety +2

    It would be really helpful to see how to do that without visual studio.

  • @arsnakehert
    @arsnakehert Před 3 lety +1

    >"I hate package managers"
    >proceeds to do the work of a package manager entirely by hand
    Goddamn it, Cherno
    I get it, though, seeing an explanation of how to do it is enlightening, and in C++ it's probably the better way to go

    • @donsk324
      @donsk324 Před 2 lety

      He said why they were bad at the beginning, are you stupid? Most Package managers don't download the package to your project directly, instead they download it elsewhere in your system and link it to your project. You literally missed the entire point.

  • @thesupremepebble3690
    @thesupremepebble3690 Před měsícem

    i gulped before watching this video.

  • @ksawery6568
    @ksawery6568 Před 5 lety

    Great explanation, thank you. Despite years of coding in different IDEs and languages, I always got confused how to setup C and C++ projects in Visual Studio.

    • @georgesealy4706
      @georgesealy4706 Před 4 lety

      I used Visual Studio going way back into the early 1990s. No doubt, it is great in that it provides a lot of automation and help to get things done. It is the professional developer's choice for doing all kinds of projects. The thing is for beginners I would say using Eclipse is better because it is simpler and the developer has to understand what is actually going on.

  • @bengibson9396
    @bengibson9396 Před 2 lety +1

    The sound at 1:38 is in the video, it's not you getting an email. You're welcome.

  • @zvxcvxcz
    @zvxcvxcz Před 4 lety +1

    +The Cherno Well... there are reasons to use dynamic, including for security (update the lib in one place and the security patches will be there for everything linking it), and you also get reduced disk space usage overall for the system with this reuse. There are also some double edged swords. A bad update can break lots of code depending on it (experienced this on Arch Linux... bleeding edge indeed). I also sometimes deal with code with very specific dependencies and it is not fun hunting them all down to build a precise environment for ten different apps requiring three different Java versions... that's just gross and my life would be way easier if they statically linked their code. This is why for my own stuff I provide both static and dynamically linked versions (when possible, sometimes I have a dependency that doesn't build statically).

    • @talkysassis
      @talkysassis Před 2 lety

      This is a simple problem to solve.
      The Operating System is a base runtime that can run your programs. Every system package MUST be a closed circle, not linked to layers above, only below.
      The user programs can use the system runtime libraries with dynamic linking, as the developer knows that the system WILL provide those libs in the correct version and location.
      Every other lib that a program use that's not on the system runtime MUST be provided with the program, and used statically (even if using dynamic files) to avoid depending on the system repositories.
      The system this way have a mission. Provide a SDK to build programs to run on it, and keep runtime compatibility with older versions, in a gap that can keep programs running at least for 10 years without recompiling.
      This seems complicated, but actually is the simplest good way (not the simplest way ever) to do things.
      Another more complex solution is to separate the system and the programs as two runtimes, and create symbolic links to specific lib versions that the programs need. If a program want x-1.0 then you instal x-1.0, but if another program wants x-1.6 then you install x-1.6, but as your programs will be looking for the same x lib, you create a symlink to the correct version that the program needs. This comes with the cost of keeping every single release of that lib on the repos, but as programs tend to use the latest version, the system can share a lot of code without breaking programs when updating.

    • @zvxcvxcz
      @zvxcvxcz Před rokem

      @@talkysassis " the developer knows that the system WILL provide those libs in the correct version and location."

    • @talkysassis
      @talkysassis Před rokem

      ​@@zvxcvxcz All of this only applies to servers. Windows, OSX ans Android have their stable runtimes.
      You know what the runtime have. They don't break it on every new release.

  • @georgesealy4706
    @georgesealy4706 Před 4 lety

    Thanks for doing this video. I was a pretty good C/C++ developer back in the 1990s and very early 2000s. Then I started to do lots of C#, Java, Web Dev, and database development. So after all that time I forgot some of the detailed nuts and bolts of where things go to do C/C++. Oh yeah, I remember now, LOL. Incidentally, after doing all that stuff for many years, I still like C/C++ the best.

    • @theshermantanker7043
      @theshermantanker7043 Před 2 lety

      For real. C/C++ and Java are pretty much the ancestors of programming today

  • @go64bit
    @go64bit Před 3 lety +2

    2:45 Start here.

  • @leixun
    @leixun Před 4 lety +7

    *My takeaways:*
    Static linking vs dynamic linking 5:15

  • @user-lg3gj9gn5s
    @user-lg3gj9gn5s Před 10 měsíci +1

    very good

  • @padelafterdark
    @padelafterdark Před 6 lety +1

    Please do a day in a life of your daily work routine at ea or something similar! That would be amazing. Thanks

  • @Marcus-yc3ib
    @Marcus-yc3ib Před 6 měsíci

    Thank you very much. It is very useful.

  • @andruha1067
    @andruha1067 Před 4 lety

    You are awesome man. Was so confused about everything before watching this.

  • @user-cb9nl1ek7p
    @user-cb9nl1ek7p Před 7 lety +1

    More linking coming soon in the OpenGL series I'm assuming with GLAD. Good vid, thanks!

  • @berksteraydo9517
    @berksteraydo9517 Před 6 lety +1

    THOSE GUITARS AND THE PILLOW

  • @adeolaibigbemi8612
    @adeolaibigbemi8612 Před 3 lety +1

    I did everything in the video but am still getting unresolved external symbol error in vs 2019.
    What could I be doing wrong.

  • @TommySnow-uj7zn
    @TommySnow-uj7zn Před 10 měsíci

    man , you rock

  • @piotrlenarczyk5803
    @piotrlenarczyk5803 Před 3 lety

    Thank you for video.

  • @atle6913
    @atle6913 Před 3 lety

    Thank you very much for this video, it's help me find the way out, so awesome man!!!

  • @tanvikulkarni9585
    @tanvikulkarni9585 Před rokem

    Why did the function call work when you added extern "C"? The include path was not added then how did it find the function?

  • @powerstar817
    @powerstar817 Před rokem

    didn't understand.
    If we want to link at run-time, it is good to use .dll.
    Else if we want at compile time, it is good to use .lib.
    How does dll.lib help?

  • @supersquare
    @supersquare Před 5 lety

    Thanks so much for this amazing walkthrough!

  • @sirrhynus4280
    @sirrhynus4280 Před 7 lety +2

    I noticed in the function declaration that they added void as a parameter. I know that it means that there are no parameters but why do they write it there and don't leave it empty. Is there any reasons why you should do that?

    • @longbra
      @longbra Před 6 lety +1

      Interesting, I thought leaving the parameter list empty in C defaulted to void. I'll have to research this one because I do it all the time in my C code.

  • @jhoc9157
    @jhoc9157 Před 4 lety

    thank you very much

  • @muhammadtaimourafzal5285

    You are my favourite CZcamsr. ❤❤❤❤

  • @DiegoBM
    @DiegoBM Před 3 lety

    Seriously, no, seriously, why do some people dislike these videos? Somebody please explain that to me...

  • @guilhermecantarela3700
    @guilhermecantarela3700 Před 7 lety +2

    What did you do with the real Cherno??? I can recognize his hair from miles away!

  • @lmnps1221
    @lmnps1221 Před 2 lety

    so much thanks

  • @medyassenoukil460
    @medyassenoukil460 Před rokem

    Pretty cool videos that you made. The only issue is the resolution of your screen (very high), however if the internet speed is slow it is difficult to view them in HD.

  • @tljstewart
    @tljstewart Před 3 lety

    Love your videos brother!

  • @bruhmode283
    @bruhmode283 Před 4 lety +1

    how can you setup a neural network that takes a api as its source of data

  • @akashmodi7496
    @akashmodi7496 Před 2 lety

    Loved the explanation

  • @romanzitlau3739
    @romanzitlau3739 Před 6 lety

    Thanks a lot! You are so nice to listen to!

  • @this.Mizar1239
    @this.Mizar1239 Před 3 lety

    8:02 as an Italian, I'm not complaining

  • @zinovychannel3848
    @zinovychannel3848 Před 3 lety

    thanks you helped me a lot

  • @JauVi85
    @JauVi85 Před 3 lety

    Goddamn I love you man :D best tutorial videos there are.

  • @vineetkumarverma4010
    @vineetkumarverma4010 Před 5 lety +1

    Can u make a video on RTTI in c++ , typeid, kinda stuff

  • @logins
    @logins Před 6 lety

    A really useful video. Thank you Cherno!

  • @visuallization
    @visuallization Před 2 lety

    So good!