Libpcap issues with release build C++ application - c++

I've developed a network sonification app in C++ that uses libpcap for packet capture. It works fine on my computer (early 2012 Macbook) but when I try to run the release build application on any other machine libpcap can't open a handle and returns null. I've added a post-build script in Xcode that adds the libpcap .dylibs from my usr/libs folder to a Frameworks folder in the application contents so they should be accessible but I can't figure out why libpcap is not working.
Thanks.

Related

C++ DLL which uses gstreamer only runs on W10 machine where it was created but not on others

Currently I'm writing a driver to provide a camera stream to a calibration software. System is Windows 10 32bit and language is C++. I used the provided project template from the calibration software supplier in VS 2017 Community. The template was made for VS2015 and I didn't upgrade to VS2017.
In a first step I used libjpeg to access the mjpeg stream and that worked fine - also on different machines. Now I want use the gstreamer to be able to also work with the H.264 stream the camera can provide.
So I installed the current x86 gstreamer runtime and development packages and wrote and built the DLL. I can run the test application from the supplier, load the DLL and it works fine on the PC where I compiled the DLL. I can see the camera stream in every format the camera supports.
But when I copy the test application and the DLL to another PC, the test application can't load the DLL. It says that any other DLL is missing, but doesn't tell me which one.
Then, I have set up another PC and compiled the DLL there. Again the test application can load the DLL and it works without a problem on that 2nd PC.
But the DLL from the 1st PC doesn't work on the 2nd PC and vice-versa. As each DLL works on the PC where it was created I assume that all dependencies are fulfilled. Analysing the DLL with Dependencies shows no missing dependencies.
So why doesn't it run on another PC?

No SSL access from Qt C++ application run outside of QtCreator but access running inside it?

I am running Linux Mint 18.3 and QtCreator (Qt version 5.15 installed from Qt installer download from Qt site, not repository binaries for the distrubution) and developing a C++ GUI application. Because of the openSSL mismatch between native Mint SSL version and that used by Qt5.12 onwards, I have installed the OpenSSL1.1.1d binaries via the Qt Maintenance Tool and have explicitly added these libraries to my application project.
Without this step nothing works. With this step, my application runs successfully when initiated WITHIN QtCreator, but not when I just run the binaries outside of it.
I know that I must be missing something simple here, but what is QtCreator doing that enables access to SSL? I have tried creating simlinks to these libraries (libcrypto.so.1.1 and libssl.so.1.1) locally within the binary directory but this has no effect.
I would like to be able to run my application without having to do so inside of QtCreator but so far I can find no workaround to allow this. Can anyone suggest what I am missing?
I can confirm that the output of calls to my QSslSocket::sslLibraryVersionString() function are returning empty string and "OpenSSL 1.1.1d" respectively, so I am convinced this is a runtime linking problem.

Why my Qt app request msvcp120d.dll on a computer but not mine

I did an application with Qt5.5, wich use open cv.
It works, so now I want to deploy it on several computers.
On the first PC (PC1), it works too : I copied the dll of Qt and open cv and add the paths in the environment variables. I copied a folder with my application, some dll and datas (images).
On the second PC (PC2), I did the same, but I can't open the application. I have the error "msvcp120d.dll is missing..".
I compiled my app in release mode.
On my PC and PC1 I moved msvcp120d.dll on the desk, and the app don't request it.
Do you know why the app asks a debug dll?
I soon installed the redistribuables packages visual C++ (x64 and x86) on PC2, but it doesn't install msvcp120d.dll.
Do you have an other idea?
thanks'
It seems like some of the libraries that you are using is linking against a Debug CRT library (indicated by the trailing d in "msvcp120d.dll"). Those aren't redistributable, and are only available on systems, where Visual Studio is installed.
I would recommend to use dependency walker to find out which dlls/libraries that need the debug version and then recompile them as release configuration.

Can I configure C++ build and run options in eclipse CDT to point to a g++ on another computer

I have a server with a very slow connection. Hence installing eclipse on the server and taking an xwindow was not a good option.So What I attempted was to install eclipse on my client, set up sftp via nautilus and open my c++ files on my server inside my local eclipse. This works great. But to run the files, I need several libraries that are installed in the server which would be painful to install on every client I use. I am now opening an ssh connection separately in a terminal and using it to compile and run. But I felt it would be better if it is integrated with eclipse as I can make use of eclipse's debug tools and stuff. Hence I was wondering if I can make eclipse CDT point to the server's version of G++ compiler and linker, so When I press the debug or run button on eclipse it would actually run on the server and just give me the output in eclipse's console? Is this even possible?
PS - I am not addicted to eclipse. It would be great even if you can suggest any other software that would allow me to do this. I am basically doing all this just to debug my code faster with a number of break points.
I finally made it possible using Netbeans remote C++ development I found here. Works like a charm.

Remote debugging C++ on the Windows Server 2008 platform with VS2010; MSVCP100D.dll missing

I've written a quick C++ console app using VS2010. I'd like to run it via the remote debugger on the Windows Server 2008 platform, in order to determine why I can't enumerate the CLSID_AudioInputDeviceCategory on that OS.
The console app works on the XP and W7 platforms.
The remote debugger gives the following error when I first tried to run the console app:
The program can't start because MSVCP100D.dll is missing from your computer. Try reinstalling the program to fix the problem.
I did try just copying this DLL from my development machine to the target folder on the remote machine, but it returned an even more obscure message:
The application was unable to start correctly (0xc0000007b). Click OK to close the application.
I've tried installing the VS2010 C++ re-distributable on the target host. This has no effect. I'm out of ideas, does anyone have any suggestions?
Having spent some time on this problem, I've noticed that the Windows Audio service on server 2008 was disabled, but my query is more to do with getting remote debugging working on the server 2008 platform than solving my audio hardware enumeration problem.
Thanks to Errata, I had a look at
Project Properties -> Configuration Properties -> C++ -> Code Generation
I changed Runtime Library from Multi-threaded Debug DLL to Multi-threaded Debug (/MTd).
This allows remote debugging without having to rely on the correct debug DLLs residing on the remote machine.
I hope this helps someone out there!
I had this exact situation. I grabbed copies of MSVCP100D.dll and MSVCR100D.dll. However I grabbed them from system32 (the 32-bit version), which resulted in the 0xc0000007b error.
0xc0000007b apparently means invalid DLL, often architecture mismatch between program and DLL (i.e. x86 and x64). In my case I grabbed the wrong (32-bit) version of the DLL from my developement computer resulting in 0xc0000007b. After grabbing the file from SysWOW64, it worked.