generally speaking, you should not need to do this. you can load an unpacked extension via the chrome://extensions page by dragging the folder where your development build lives unto the page (or navigating to the folder path where the manifest.json file lives via the Load Unpacked button -- you need to check off Developer mode to do this).
and for other users, you would preferably host the extension in the Chrome web store, which will generate the .crx file for you when you upload your extension.
if you're looking to build a .crx file for a managed installation via Group Policy, or similar, for an Enterprise situation -- you need to use Chrome to generate a signed archive -- the .crx file is a special archive that includes the digital signature information. the following command can be used:
"%chrome.dir%\chrome.exe" --pack-extension="%stage.dir%" --pack-extension-key="%private.key.file%"
where %chrome.dir% represents the path to chrome.exe on your system, e.g. C:\Program Files (x86)\Google\Chrome\Application
%stage.dir% represents the path to your extension and all ancillary files (e.g. manifest.json)
%private.key.file% represents the path to your private key certificate (so that you get a consistent extension id) -- you can generate the certificate using openssl or similar.
see for information about hosting options (the .crx would be needed for self-hosting):
information about the command line options: