This lists a small list of problems and solutions related to compilers, libraries etc.
The Microsoft compiler (cl, csc, vbc, ...) cannot run from command-line.
The system may not be able to find the executables for the compilers; a solution may be to enter
vsvars32
on a command-line. This sets up paths and environment variables for the Microsoft compilers.
When compiling on command-line, the compiler cannot find mosekdotnet.dll.
The compiler requires a reference to the exact location of library, for example
csc /r:C:\MOSEKINSTALLATION\BIN\DLL\mosekdotnet.dll myapplication.cs
The application compiles, but when running it mosekdotnet.dll is missing.
If mosekdotnet.dll has been installed into the Global Assembly Cache, the application may expect a newer version of the library than is found in the GAC. The solution is to update the library with gacutil.exe (this should not be a problem for other applications using older versions of the library). Otherwise, if installing the library is not an option, mosekdotnet.dll may be copied to the same directory as the application executable.
Please note, that if the GAC contains an older version of mosekdotnet.dll, this will be used even if the application directory contains a newer version.
The application, compiles and seems to run, but cannot find mosek.dll library.
The system cannot find the binary MOSEK library. The solution is either to copy it to the application directory or to modify the path environment variable to contain the full path to the MOSEK library.
Console output from the native library and from the .NET code is mixed more or less at random.
This happens because the native code and the .NET code runs in two different processes; the output is not synchronized. This may be solved by creating stream callbacks for all four MOSEK stream.
The application compiles, but when the first MOSEK function is called, an error message is displayed “OMP abort: Initializing libguide40.lib, but found libguide.lib already initialized”.
MOSEK used libguide40.dll (an Intel threading library). The error means that the application also links to another library which is statically linked with libguide.lib. These two instances of libguide may clash causing this error.
If possible, relink the offending DLL with the dynamic version (libguide40.lib instead of libguide.lib), otherwise set the environment variable “KMP_DUPLICATE_LIB_OK” to “TRUE”.