2011-09-07 8 views
8

बाद डेल्फी XE2 स्थापित करते हैं, मैं एक साधारण प्रोग्राम को संकलित करने के कमांड लाइन संकलक dcc32.exe कोशिश:डेल्फी XE2: एक साधारण प्रोग्राम को संकलित करने के dcc32.exe का उपयोग कर विफल

program test; 

uses SysUtils; 

begin 
end. 

कमांड लाइन संकलक मुझे त्रुटि दिखाने:

c:> dcc32.exe test.dpr
Embarcadero Delphi for Win32 compiler version 23.0 Copyright (c) 1983,2011 Embarcadero Technologies, Inc.
test.dpr(3) Fatal: F1026 File not found: 'SysUtils.dcu'

यह डेल्फी XE के लिए नहीं होता है।

उत्तर

28

तुम सिर्फ कमांड लाइन (dcc32.cfg के बिना) का उपयोग करना चाहते हैं, तो कमांड लाइन पैरामीटर आप देख रहे हैं में खोज करने के लिए नामस्थान निर्दिष्ट करने के लिए -NS है ...

तो, आप के लिए होता है कुछ इस तरह:

dcc32.exe -NSsystem;vcl test.dpr 

यह System और VCL नामस्थान में इकाइयों के लिए संकलक देखो करना चाहिए (VCL एक से अधिक नाम स्थान संलग्न करने का तरीका दिखाने के लिए जोड़ा गया)।

यह जानकारी Embarcadero Discussion Forums पर मिली थी। मेरे पास अभी तक XE2 नहीं है इसलिए मैं इसका परीक्षण नहीं कर सका।

8

मुझे पता है कि यह आपके प्रत्यक्ष प्रश्न का उत्तर नहीं है (उवे और नेट ने इसे कवर किया है), लेकिन आप एमएसबिल्ड के साथ इमारत से काफी बेहतर होंगे। इस तरह आप अपनी .dproj फ़ाइल में सभी सेटिंग्स उठाएंगे।

निर्माण आदेश इस तरह दिखना चाहिए:

msbuild test.dproj /t:Rebuild /p:Config=Release 

आप एक बैच स्क्रिप्ट से इस का निर्माण कर रहे हैं, तो आप यकीन है कि यह सही msbuild देख सकते हैं बनाने के लिए की आवश्यकता होगी। इस तरह करें:

call "path\to\delphi\installation\bin\rsvars.bat" 
msbuild test.dproj /t:Rebuild /p:Config=Release 
+1

आप dproj कैसे बनाते हैं? मुझे लगता है कि वह cmdline पर संकलित करता है क्योंकि वह इसके लिए डेल्फी शुरू नहीं करना चाहता था। –

+1

@ मार्को द। डीप्रोजेज हाल ही में डेल्फी संस्करणों में स्रोत कोड का हिस्सा है। यह आईडीई द्वारा बनाए रखा जाता है और इसमें आपकी परियोजना कॉन्फ़िगरेशन होती है। –

+1

मुझे आपकी बात समझ में नहीं आ रही है। यह निश्चित रूप से एक मानक (जीयूआई) परियोजना के लिए है, लेकिन सामान्य मामलों के लिए आप cmdline पर वापस नहीं जाते हैं। –

13

RTL और VCL में नए नामस्थान के कारण आप संकलक के लिए एक अतिरिक्त कमांड लाइन पैरामीटर निर्दिष्ट करने के लिए है। "-NSSystem; System.Win; WinAPI; Vcl; Vcl.Imaging; डेटा" आज़माएं और आवश्यकतानुसार अन्य नामस्थान जोड़ें।

-1

यदि आप हेवलेट पैकार्ड पीसी या लैपटॉप का उपयोग कर रहे हैं, तो आपको शायद "प्लेटफार्म" पर्यावरण सेटिंग (विंडोज़ में) को हटाने की आवश्यकता होगी। पूर्व-कॉन्फ़िगर (फैक्ट्री) एचपी विंडोज 7 में (मेरे लिए अज्ञात कारणों से) एक पर्यावरण चर प्लेटफार्म = AnyCPU है। यह डेल्फी XE2 को प्रभावित करता है। मैंने कल रात इस चर्चा को पाया, जिसने मुझे मदद की: https://forums.embarcadero.com/thread.jspa?messageID=387525&tstart=0 उस फिक्स के बिना, मैं कुछ भी संकलित करने में असमर्थ था। यह वीसीएल और फायरमोन्की पर चकित होगा, इससे कोई फर्क नहीं पड़ता कि मैंने 64 या 32-बिट को लक्षित किया है।

+0

है जो केवल .dproj फ़ाइलों को संकलित करते समय लागू होता है, नहीं .dpr फ़ाइलों, जिनमें प्लेटफ़ॉर्म विनिर्देश नहीं हैं। –

संबंधित मुद्दे