Issue with Qt dynamic library in Linux - linux

I built an application based on QuickFIX Engine in Qt, named fixapp; it works fine. My broker asked me to specify a local port to connect to them. Then I couldn't find such configuration file, so I modified the source code of QuickFix.
I used the examples of tradeclient and executor brought by QuickFIX source code to test. This works. tradeclient binds to a local port I specified in configuration file.
However, when I turn to fixapp, using the library built by the modified QuickFIX source code, it doesn't bind to the local port I specified. It seems that the part I modified didn't change the behavior of the program.
What are the potential problems here?
Update:
I tried to set some breakpoints in QuickFix source code. In one cpp file I modified, my breakpoint is ignored. It is Debug Mode, not release mode. I feel like that it is running the old cpp file and showing the new cpp file.

The asker found that quickfix library path is .../quickfix/lib, and the path I reference to the external lib in fixapp is also .../quickfix/lib. However when he checked the library path in /usr/lib, the library is still the old one. Once he replaced the one in /usr/lib, the fixapp started to work. He doesn't know why the path he referenced in Qt doesn't work but the /usr/lib works.

Related

Why are Nodejs breakpoints in VS Code disabled depending on whether the full path appears in the tab title?

A breakpoint in my Mocha test works when set on the exact same line in one VS Code tab but not in another.
The difference: If the full path appears in the tab, then breakpoints work. (Second item in screenshot.)
But if the filename, without path, appears in the tab header, then breakpoints all become Unverified (gray) during execution.
Repro steps:
If you open files from the Explorer view, the bug occurs.
If you open files using CTRL-P, as in the screenshot, then both
variants are usually available, and choosing the one with/without
path gives the different behaviors.
How can I avoid this without continually checking which path variant is appearing?
(Here is a GitHub ticket that I opened.)
Answer (figured out on the GitHub thread):
My workspace path was under a symbolic link (Ubuntu).
VS Code apparently dereferences symbolic links to give Node a path that it can work with, to support breakpoints.
VS Code also shows the file at the correctly referenced path in my workspace folder as I defined it (under the symbolic link).

How to discover the Paths to Loading Binaries

I have a problem where I need to know the filesystem path of the current binary, as well as those of any loading (as opposed to loaded) binaries. Here is an example (for Windows): Say we have an executable A.exe, which dynamically binds to B.dll, which in turn binds to C.dll. How could code executing in C.dll get the file paths of C.dll, B.dll, and A.exe?
Oh, and I need to be able to do it on Linux, Mac, and Windows.
On Linux, the closest thing I've found is dl_iterate_phdr, but the who-loaded-who info is missing.
On Windows, The Dynamic-Link functions don't have quite the right functionality.
On Mac, all I can find is what's in dlfcn.h, which is rather pithy for this purpose.
Thanks.

gvim syntastic Error: Module XXX cannot read file 'file\etc\etc'

I have a set of libraries that live in another folder and syntastic is trying to look for this libraries in the same folder where program lives. For example, the program I have, let's call it, myprogr.d is in c:\programming\myprogr.d. There are libraries inside that program that are address as this
private import jic.libs.myLibs;
and this library exists in C:\D\Import\jic\libs\mylibs.d. When I compile this program, I pass -IC:\D\Import option to the compiler whom finds the entry point for the mentioned library and continues one without a problem. How can I make Syntastic not give me this error?

How do you specify include directory path in F#?

I am using F# in Visual Studio 2012 and this may seem like a dumb question but I cannot figure out how to specify include directories, specifically for binaries. I see how to do it for F# interactive using the #I directive and it works there, but the #I option is not available in the non-interactive form. The compiler error message says to use the -I compiler option. I have looked under Project Properties, where the only subsections visible are Application, Build, Build Events, Debug, and Reference Paths none of which provides any obivous way to specify an include directory path. The help system isnt much help as it seems to reference sections that are unavailable.
Well i still have the problem with VS12 but at least i have a workaround, by calling the compiler from the command line. You have to use the -r option to specify the location of the dll:
fsc -r:<complete path to dll> <fname>
However when i try the corresponding step in VS (by trying to set one of the Reference Paths) it says there are no items found in the DLL folder. So perhaps someone familiar with CS can help out

Problems getting Vim's omnicppcomplete to work right

I'm trying to get OmniCppcomplete to work and I'm running into trouble. I've followed the steps on this page (including the things to add to the .vimrc file). I downloaded and extracted the zip file to ~/.vim, I ran the commands it says, I did everything there and it still doesn't work. I also tried downloading the modified stl for the __STD_NAMESPACE_BEGIN fix. I ran ctags on the directory and placed the tags file in ~/.vim/tags/cpp.
Whenever I type a class name or namespace name followed by a . or :: or whatever, I only get an error saying Omni completion (^O^N^P) Pattern not found. I've run tselect TestClass to see that the tags were actually being generated and they are, so I'm at a loss as to what's happening.
I think I figured it out. I had been placing my tags in a directory called ~/.vim/tags/cpp/, rather than making a file called cpp and placing it in the tags directory. It seems to work now.

Resources