I'd like to create my own simple custom module, but I don't want to use the
complicated package manager. Package manager is overkill for a simple
single source file module. So, here's what I've tried.
file: greet.swift
public func askName() {
print("What's your name? ")
let name = readLine()!
print("Hello, \(name)... good to see you!")
}
All went well, so I think now I already have had the "greet" module. Let's
try to use it…
file: test.swift
import greet
askName()
terminal:
$ swiftc test.swift
clang: warning: argument unused during compilation: '-F/home/username'
/tmp/test-b63aab.o: In function `main':
/tmp/test-b63aab.o:(.text+0x41): undefined reference to
`_TF5greet7askNameFT_T_'
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
<unknown>:0: error: link command failed with exit code 1 (use -v to see
invocation)
Sorry… forgot to say. I'm using Swift v.2.2 on Linux Ubuntu 14.04.
···
On Sat, Dec 12, 2015 at 9:50 PM, Bee <bee.ography@gmail.com> wrote:
Hi all,
I'd like to create my own simple custom module, but I don't want to use
the complicated package manager. Package manager is overkill for a simple
single source file module. So, here's what I've tried.
file: greet.swift
public func askName() {
print("What's your name? ")
let name = readLine()!
print("Hello, \(name)... good to see you!")
}
All went well, so I think now I already have had the "greet" module. Let's
try to use it…
file: test.swift
import greet
askName()
terminal:
$ swiftc test.swift
clang: warning: argument unused during compilation: '-F/home/username'
/tmp/test-b63aab.o: In function `main':
/tmp/test-b63aab.o:(.text+0x41): undefined reference to
`_TF5greet7askNameFT_T_'
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
<unknown>:0: error: link command failed with exit code 1 (use -v to see
invocation)
Sorry… I answer my own question. It need -l<module-name> argument. So, the
last command should be:
$ swiftc test.swift -lgreet
then it emitted a runnable app. I wonder why does it need an explicit
module name in the command line? While there is already an import clause
within the source file. Anyway, problem solved.
Thank you. :)
···
On Sat, Dec 12, 2015 at 9:53 PM, Bee <bee.ography@gmail.com> wrote:
Sorry… forgot to say. I'm using Swift v.2.2 on Linux Ubuntu 14.04.
On Sat, Dec 12, 2015 at 9:50 PM, Bee <bee.ography@gmail.com> wrote:
Hi all,
I'd like to create my own simple custom module, but I don't want to use
the complicated package manager. Package manager is overkill for a simple
single source file module. So, here's what I've tried.
file: greet.swift
public func askName() {
print("What's your name? ")
let name = readLine()!
print("Hello, \(name)... good to see you!")
}
All went well, so I think now I already have had the "greet" module.
Let's try to use it…
file: test.swift
import greet
askName()
terminal:
$ swiftc test.swift
clang: warning: argument unused during compilation: '-F/home/username'
/tmp/test-b63aab.o: In function `main':
/tmp/test-b63aab.o:(.text+0x41): undefined reference to
`_TF5greet7askNameFT_T_'
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
<unknown>:0: error: link command failed with exit code 1 (use -v to see
invocation)
simple version
$swiftc -emit-module -emit-library greet.swift
emit greet.swiftdoc greet.swiftmodule libgreet.dylib
$swiftc -I. -L. -lgreet test.swift
emit test
detailed version
$swiftc -emit-module -emit-library -module-name greet -module-link-name mm
-o libmm.dylib greet.swift
emit greet.swiftdoc greet.swiftmodule libmm.dylib
$swiftc -I. -L. -lmm test.swift
emit test
···
2015-12-12 23:05 GMT+08:00 Bee via swift-users <swift-users@swift.org>:
Sorry… I answer my own question. It need -l<module-name> argument. So, the
last command should be:
$ swiftc test.swift -lgreet
then it emitted a runnable app. I wonder why does it need an explicit
module name in the command line? While there is already an import clause
within the source file. Anyway, problem solved.
Thank you. :)
On Sat, Dec 12, 2015 at 9:53 PM, Bee <bee.ography@gmail.com> wrote:
Sorry… forgot to say. I'm using Swift v.2.2 on Linux Ubuntu 14.04.
On Sat, Dec 12, 2015 at 9:50 PM, Bee <bee.ography@gmail.com> wrote:
Hi all,
I'd like to create my own simple custom module, but I don't want to use
the complicated package manager. Package manager is overkill for a simple
single source file module. So, here's what I've tried.
file: greet.swift
public func askName() {
print("What's your name? ")
let name = readLine()!
print("Hello, \(name)... good to see you!")
}
All went well, so I think now I already have had the "greet" module.
Let's try to use it…
file: test.swift
import greet
askName()
terminal:
$ swiftc test.swift
clang: warning: argument unused during compilation: '-F/home/username'
/tmp/test-b63aab.o: In function `main':
/tmp/test-b63aab.o:(.text+0x41): undefined reference to
`_TF5greet7askNameFT_T_'
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
<unknown>:0: error: link command failed with exit code 1 (use -v to see
invocation)
On Sun, Dec 13, 2015 at 9:44 PM, cooper liu <1989lzhh@gmail.com> wrote:
hi,
here is my test under mac os x
simple version
$swiftc -emit-module -emit-library greet.swift
emit greet.swiftdoc greet.swiftmodule libgreet.dylib
$swiftc -I. -L. -lgreet test.swift
emit test
detailed version
$swiftc -emit-module -emit-library -module-name greet -module-link-name mm
-o libmm.dylib greet.swift
emit greet.swiftdoc greet.swiftmodule libmm.dylib
$swiftc -I. -L. -lmm test.swift
emit test
2015-12-12 23:05 GMT+08:00 Bee via swift-users <swift-users@swift.org>:
Sorry… I answer my own question. It need -l<module-name> argument. So,
the last command should be:
$ swiftc test.swift -lgreet
then it emitted a runnable app. I wonder why does it need an explicit
module name in the command line? While there is already an import clause
within the source file. Anyway, problem solved.
Thank you. :)
On Sat, Dec 12, 2015 at 9:53 PM, Bee <bee.ography@gmail.com> wrote:
Sorry… forgot to say. I'm using Swift v.2.2 on Linux Ubuntu 14.04.
On Sat, Dec 12, 2015 at 9:50 PM, Bee <bee.ography@gmail.com> wrote:
Hi all,
I'd like to create my own simple custom module, but I don't want to use
the complicated package manager. Package manager is overkill for a simple
single source file module. So, here's what I've tried.
file: greet.swift
public func askName() {
print("What's your name? ")
let name = readLine()!
print("Hello, \(name)... good to see you!")
}
All went well, so I think now I already have had the "greet" module.
Let's try to use it…
file: test.swift
import greet
askName()
terminal:
$ swiftc test.swift
clang: warning: argument unused during compilation: '-F/home/username'
/tmp/test-b63aab.o: In function `main':
/tmp/test-b63aab.o:(.text+0x41): undefined reference to
`_TF5greet7askNameFT_T_'
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
<unknown>:0: error: link command failed with exit code 1 (use -v to see
invocation)