I am building a C++ application on Windows using Interix and need to link in three object files to supply a third-party licensing module's functionality. The third party has supplied the object files as built by Visual Studio. Is there anyway to convert the files for use with GCC? For example, perhaps if I change the name mangling from Visual Studio style to GCC style that would be sufficient, or are there other differences between the two object file formats?
Is there a tool that can convert a Visual Studio object file to GCC format?
1.5k Views Asked by WilliamKF At
2
There are 2 best solutions below
0
Low power
On
In addition to the possible symbol differences between VC++ and GCC/G++, what's you are trying to do may be impossible due to Windows API issue.
Programs that built from Interix GCC can only work with Interix, and since Interix is a separated subsystem in parallel of the Windows subsystem (or say Win32 subsystem), you can't call any Windows API (ex. from kernel32.dll) from Interix programs.
If that licensing object file contain any Windows API calls, linking will not be possible.
Related Questions in C++
- C++ using std::vector across boundaries
- Linked list without struct
- Connecting Signal QML to C++ (Qt5)
- how to get the reference of struct soap inherited in C++ Proxy/Service class
- Why we can't assign value to pointer
- Conversion of objects in c++
- shared_ptr: "is not a type" error
- C++ template using pointer and non pointer arguments in a QVector
- C++ SFML 2.2 vectors
- Lifetime of temporary objects
- I want to be able to use 4 different variables in a select statement in c ++
- segmentation fault: 11, extracting data in vector
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- How can I print all the values in this linked list inside a hash table?
- Configured TTL for A record(s) backing CNAME records
Related Questions in VISUAL-STUDIO
- NuGet - Given a type name or a DLL, how can I find the NuGet package?
- Exception thrown at 0x0131EB06 Visual Studio
- Visual Studio 2015 Cordova Plugin Add Fail
- Cannot find InvalidCastException in C# Application
- generating C# code file during Visual Studio build
- Can I deploy multiple instances of my application on the same windows phone?
- Close the Solution Explorer window
- How to generate entity framework code-first migrations without using the package manager console?
- Implementing callback function for dialog-based application
- VB.net: How to make original variable value fulfill 2 statements?
- DLL being marked as DELETEPENDING
- String tokenizing in Visual Studio C++
- How to use "Multicharts Studies" in Visual Studio 2013?
- Programs Will Not Run In Visual Studio
- VB.Net: Display total when check boxes are checked
Related Questions in GCC
- gcc static library compilation
- Different behavior of async with Visual Studio 2013(Windows8.1) and GCC 4.9(Ubuntu14.10)
- How to add directories to Cygwin gcc default search path
- Usage of #ifndef directive
- Failure to link a program with gcc -static
- Text as parameter in inline assembly (ARM)?
- Alternatives for strrspn and strfind functions(libgen functions in Solaris) in AIX?
- Incorrect format specifier with gcc compiler
- Why should I use a closing bracket in this?
- How can I compile *without* various instruction sets enabled?
- Automatically wrap C/C++ function at compile-time with annotation
- gcc compiled library: can successfully link with, how come it's "undefined symbol" when run the program?
- compiling caffe on Yosemite
- error - /usr/bin/ld: cannot find -lavutil in ubuntu 15.04
- Compatibility of libstdc++.so libgcc_s.so when upgrading GCC 4.1 to GCC 4.8.2
Related Questions in CROSS-COMPILING
- Cross compile simple standard C program on Linux for Mac
- mingw-64 conflicting declarations when cross-compiling
- GSL: nm outputs "undefined Symbol (U)"
- using Diab, dcc 5.9.4 to compile a windows executable
- Cross compiling for Raspberry pi 2 error
- Linker Error on cross compiling Project in eclipse
- Get conditional branch slot from MIPS cross compiler
- Prelink Error: prelink-cross: simple hello world example
- Go Cross compiler fails
- How to install the third-party python (2.7) modules (e.g. Pycrypto) on ARM?
- impossible constraint in 'asm' error
- How can I compile ndpiReader.c that comes with nDPI library in Windows?
- How Do I Configure Qmake for Cross Compilation?
- Building a cross compile of binutils on OS X Yosemite
- Explain behavior of Unix sleep() function executed on Android
Related Questions in INTERIX
- stddef.h: error: duplicate 'unsigned'
- C Compiler cannot create executables on SUA/Interix
- Linux Development C/C++/bash/python on windows-7
- What does "Context stack underflow" mean in gdb?
- C++ : Interix signals
- gcc won't compile simple C program on Interix- Windows 7 x64
- Does Interix implement fork()?
- C++ application crashes while instantiating an ofstream object.
- Is there a tool that can convert a Visual Studio object file to GCC format?
- Will libraries built under Gentoo with Interix work outside Gentoo?
- How to figure out why UDP is only accepting packets at a relatively slow rate?
- Best Linux distro for cross-compiling to SUA
- Which boost file includes libstdcpp3.hpp?
- "ImportError: No module named _multiprocessing" in python 2.6
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Windows does not have a standardized C++ ABI (Application Binary Interface). It does have a C ABI, though. This is the ABI used for instance by
Kernel32.DLL, so all Windows programming environments understand it. Many can also produce such DLLs.In this case, the C++ .obj files have to be linked by the Visual Studio linker. That linker is definitely capable of creating DLL files. You'll have to write
extern "C"functions to wrap the licensing functionality. Add__declspec(dllexport)to indicate that those functions are exported from the DLL (on Windows, functions by default are private to a DLL).In a header, declare those same functions as
__declspec(dllimport). GCC understands that as well. Then link against the newly produced DLL, which will resolve thedllimport'ed symbols.