VS Express 2015 - unresolved external symbol __iob_func

3 posts / 0 new
Last post
Offline
Last seen: 7 years 7 months ago
Joined: 06/14/2016
Posts: 2
VS Express 2015 - unresolved external symbol __iob_func

When attempting to compile the provided Hello-i86Win32VS2015 solution under $(DOCUMENTS)\rti_workspace\5.2.3\examples\connext_dds\c++\hello_simple\win32, I receive a LNK2001 error. I am running Visual Studio Express 2015 on 64-bit Windows 7 Professional.

The error's description is "unresolved external HelloPublisher symbole __iob_func", and the file listed is nddscz.lib.

The NDDSHOME environment variable is set to the RTI installation directory at C:\Program Files\rti_connext_dds-5.2.3. Both HelloPublisher and HelloSubscriber have the following paths set in Configuration > VC++ Directories:

  • Include Directories = $(VC_IncludePath);$(WindowsSDK_IncludePath);$(NDDSHOME)\include;
  • Library Directories = $(LibraryPath);$(NDDSHOME)\lib\i86Win32VS2010;

Further, for both projects their Configuration > Linker > Input > Additional Dependencies = nddscppz.lib;nddscz.lib;nddscorez.lib;netapi32.lib;advapi32.lib;user32.lib;WS2_32.lib;legacy_stdio_definitions.lib;%(AdditionalDependencies)

Offline
Last seen: 7 years 7 months ago
Joined: 06/14/2016
Posts: 2

Further research suggests that Microsoft irrevocably changed `__iob_func` in VS 2015; it doesn't appear to be possible to use a 2015 version of VS with libraries built using a previous version of VS.

The eventual workaround was to install VS Express 2013, which Microsoft still offers for download (unlike 2010). That version of VS does not include the changes to that function, and allows for successful building of the sample code.

jwillemsen's picture
Offline
Last seen: 2 years 10 months ago
Joined: 09/24/2013
Posts: 55

The 5.2.3 release does have a Visual Studio 2015 target package, can't you use that? We use that without problems on Windows using Visual Studio 2015 using 32 and 64bit.