Project

General

Profile

Actions

Bug #4113

closed

Cannot build trunk with MSVC.

Added by phasis68 (Heesob Park) over 13 years ago. Updated almost 13 years ago.

Status:
Closed
Assignee:
-
Target version:
ruby -v:
ruby 1.9.3dev
Backport:
[ruby-core:33530]

Description

=begin
Due to r30012 and r30054, I cannot build trunk version with MSVC.

C:\work\snapshot>nmake

Microsoft(R) Program Maintenance Utility 버전 9.00.30729.01
Copyright (c) Microsoft Corporation. All rights reserved.

     CFLAGS = -MD -Zi -W2 -wd4996 -O2sy-  -Zm600
     XCFLAGS = -DRUBY_EXPORT -I. -I.ext/include/i386-mswin32_90 -I./include -I. -I./missing
     CPPFLAGS =
     DLDFLAGS = -incremental:no -debug -opt:ref -opt:icf -dll
     SOLIBS =

Creating config.h
.ext\include\i386-mswin32_90\ruby\config.h updated.
Creating config.status
compiling main.c
main.c
compiling dmydln.c
dmydln.c
compiling miniruby.rc
fatal error RC1106: invalid option: -ologo
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\rc.EXE"' : '0x1' 반환 코드입니다.
Stop.

C:\work\snapshot>cl
Microsoft (R) 32비트 C/C++ 최적화 컴파일러 버전 15.00.30729.01(80x86)
Copyright (c) Microsoft Corporation. All rights reserved.

사용법: cl [ option... ] filename... [ /link linkoption... ]

C:\work\snapshot>rc/?

Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation. All rights reserved.

Usage: rc [options] .RC input file
Switches:
/r Emit .RES file (optional)
/v Verbose (print progress messages)
/d Define a symbol
/u Undefine a symbol
/fo Rename .RES file
/l Default language ID in hex
/i Add a path for INCLUDE searches
/x Ignore INCLUDE environment variable
/c Define a code page used by NLS conversion
/w Warn on Invalid codepage in .rc (default is an error)
/y Don't warn if there are duplicate control ID's
/n Append null's to all strings in the string tables
/fm Localizable resource only dll file name
/j Add localizable resource type(s)
/k Add resource type(s) to be kept in the language neutral
file in addition to adding them to the resource only DLL
Using the /j switch
/q RC Configuration file for the resource only DLL
/g Specify the ultimate fallback language ID in hex
/g1 Specify if version only MUI file can be created
/g2 Specify the custom file version for checksum in MUI creation
Flags may be either upper or lower case

C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin>rc /?

Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
Copyright (C) Microsoft Corporation. All rights reserved.

Usage: rc [options] .RC input file
Switches:
/r Emit .RES file (optional)
/v Verbose (print progress messages)
/d Define a symbol
/u Undefine a symbol
/fo Rename .RES file
/l Default language ID in hex
/i Add a path for INCLUDE searches
/x Ignore INCLUDE environment variable
/c Define a code page used by NLS conversion
/w Warn on Invalid codepage in .rc (default is an error)
/y Don't warn if there are duplicate control ID's
/n Append null's to all strings in the string tables
/fm Localizable resource only dll file name
/q RC Configuration file for the resource only DLL
/g Specify the ultimate fallback language ID in hex
/g1 Specify if version only MUI file can be created
/g2 Specify the custom file version for checksum in MUI creation
/nologo Suppress startup logo
Flags may be either upper or lower case

The version of rc.exe is independent of the version of cl.exe.
The RC command in the SDK of version 6.x does not support -ologo.
The -nologo option requires the SDK of version 7.0A of higher.
=end

Actions #1

Updated by nobu (Nobuyoshi Nakada) over 13 years ago

=begin
Hi,

At Fri, 3 Dec 2010 10:53:50 +0900,
Heesob Park wrote at [ruby-core:33530]:

The version of rc.exe is independent of the version of cl.exe.
The RC command in the SDK of version 6.x does not support -ologo.
The -nologo option requires the SDK of version 7.0A of higher.

I didn't know that such combination was possible.

Does this help?


diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 18a8cb4..5f34f2e 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -240,7 +240,7 @@ DLDFLAGS = $(LDFLAGS) -dll
SOLIBS =
RCFILES = $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc
!ifndef RCFLAGS
-!if $(MSC_VER) >= 1500
+!if [$(RC) -? | findstr nologo] == 0
RCFLAGS=-nologo
!endif
!endif

--
Nobu Nakada

=end

Actions #2

Updated by usa (Usaku NAKAMURA) over 13 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r30066.
Heesob, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Actions #3

Updated by phasis68 (Heesob Park) over 13 years ago

=begin
Hi,

2010/12/3 Nobuyoshi Nakada :

Hi,

At Fri, 3 Dec 2010 10:53:50 +0900,
Heesob Park wrote at [ruby-core:33530]:

The version of rc.exe is independent of the version of cl.exe.
The RC command in the SDK of version 6.x does not support -ologo.
The -nologo option requires the SDK of version 7.0A of higher.

I didn't know that such combination was possible.

Does this help?

diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 18a8cb4..5f34f2e 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -240,7 +240,7 @@ DLDFLAGS = $(LDFLAGS) -dll
 SOLIBS =
 RCFILES = $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc
 !ifndef RCFLAGS
-!if $(MSC_VER) >= 1500
+!if [$(RC) -? | findstr nologo] == 0
 RCFLAGS=-nologo
 !endif
 !endif

Yes, it helps.

Regards,
Park Heesob

=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0