Be default Qt supports development with C and C++. With the popularity of Go Lang smaller learning curve, there is a demand for using Go instead of C/C++. But developers dont want to leave the robust deployment platform that helps in making builds for Android, iOS, Windows, Mac and Linux.
In this tutorial, you will learn how to setup Qt for Go on Mac. Steps are similar for other platforms but we will take care of that in other post.
Step 1: Install Xcode and the Command Line Tools:
You can install Xcode from the Mac App Store. Here is the App Store Link
Now to install the Command Line Tools run the following command in a new terminal window.
Now we are ready to move to next step.
Step 2 : Qt Setup
There are several ways you can setup Qt on Mac. Here are some of the popular package managers which you can use to install Qt.
But none of the above will support mobile platforms. Thus we will no go with the package managers. Rather, we will download and install directly from the Qt website.
By itself Qt is a paid tool. If you are just getting started then you can use the Open Source version of Qt. Although the premium version has more features and plugins.
As of today if your annual revenue is more than $250K, then you will have to pay more than $4000 every year. But if your annual revenue is less than $250K then you will just need to pay $499 per year.
For this post we will use the opensource version of Qt. You can download Qt from the below link on the Qt website.
When you are installing then it will ask for the folder where you want to install. It is recommnded to install in the Applications directory. For example if the Qt version is "5.14.2", then install in the folder "/Applications/Qt/5.14.2"
I also make an alias of the latest version as "/Applications/Qt/Latest" which points to "/Applications/Qt/5.14.2" or which ever is the latest version. This way I can have multiple versions of Qt installed.
Also make sure that you select all the appropriate components while you are installing Qt. It is recommended to install support for all the mobile and desktop platforms.
Now that Qt is installed we will need to setup some environment variables and paths.
Add the following lines to you profile files.
export QT_DIR="/Applications/Qt" export QT_VERSION="5.14.2" export PATH="/Applications/Qt/Latest/clang_64/bin:$PATH" export LDFLAGS="-L/Applications/Qt/Latest/clang_64/lib" export CPPFLAGS="-I/Applications/Qt/Latest/clang_64/include"
Now your Qt setup is complete. You can try running some samples using the Qt Creator.
Before moving ahead we have to make sure that we are able to call Qt from command line. Try running the below command.
[email protected]-MacBook Documents % $QT_DIR/$QT_VERSION/clang_64/bin/qmake -query You should get similar output as shown below QT_SYSROOT: QT_INSTALL_PREFIX:/Applications/Qt/5.14.2/clang_64 QT_INSTALL_ARCHDATA:/Applications/Qt/5.14.2/clang_64 QT_INSTALL_DATA:/Applications/Qt/5.14.2/clang_64 QT_INSTALL_DOCS:/Applications/Qt/Docs/Qt-5.14.2 QT_INSTALL_HEADERS:/Applications/Qt/5.14.2/clang_64/include QT_INSTALL_LIBS:/Applications/Qt/5.14.2/clang_64/lib QT_INSTALL_LIBEXECS:/Applications/Qt/5.14.2/clang_64/libexec QT_INSTALL_BINS:/Applications/Qt/5.14.2/clang_64/bin QT_INSTALL_TESTS:/Applications/Qt/5.14.2/clang_64/tests QT_INSTALL_PLUGINS:/Applications/Qt/5.14.2/clang_64/plugins QT_INSTALL_IMPORTS:/Applications/Qt/5.14.2/clang_64/imports QT_INSTALL_QML:/Applications/Qt/5.14.2/clang_64/qml QT_INSTALL_TRANSLATIONS:/Applications/Qt/5.14.2/clang_64/translations QT_INSTALL_CONFIGURATION:/Applications/Qt/5.14.2/clang_64 QT_INSTALL_EXAMPLES:/Applications/Qt/Examples/Qt-5.14.2 QT_INSTALL_DEMOS:/Applications/Qt/Examples/Qt-5.14.2 QT_HOST_PREFIX:/Applications/Qt/5.14.2/clang_64 QT_HOST_DATA:/Applications/Qt/5.14.2/clang_64 QT_HOST_BINS:/Applications/Qt/5.14.2/clang_64/bin QT_HOST_LIBS:/Applications/Qt/5.14.2/clang_64/lib QMAKE_SPEC:macx-clang QMAKE_XSPEC:macx-clang QMAKE_VERSION:3.1 QT_VERSION:5.14.2
If you didnt or got some errors then you need to recheck your installation.
Now that we are done with Qt setup, time to move to the next step.
Step 3 : Go Setup
For Go I would suggest that you use homebrew or any of the other package managers. Here is the command for installing Go on Mac using Homebrew.
brew install go
Its rare that you will have any issues while installing Go. Still, you can test your setup by running the go command to check if everything is setup correctly.
Here is the result when I run the go command.
[email protected]-MacBook-Pro ~ % go Go is a tool for managing Go source code. Usage: go <command> [arguments] The commands are: bug start a bug report build compile packages and dependencies clean remove object files and cached files doc show documentation for package or symbol env print Go environment information fix update packages to use new APIs fmt gofmt (reformat) package sources generate generate Go files by processing source get add dependencies to current module and install them install compile and install packages and dependencies list list packages or modules mod module maintenance run compile and run Go program test test packages tool run specified go tool version print Go version vet report likely mistakes in packages Use "go help <command>" for more information about a command. Additional help topics: buildconstraint build constraints buildmode build modes c calling between Go and C cache build and test caching environment environment variables filetype file types go.mod the go.mod file gopath GOPATH environment variable gopath-get legacy GOPATH go get goproxy module proxy protocol importpath import path syntax modules modules, module versions, and more module-get module-aware go get module-auth module authentication using go.sum module-private module configuration for non-public modules packages package lists and patterns testflag testing flags testfunc testing functions Use "go help <topic>" for more information about that topic.
If you got output similar to above then you are good to go :)
Step 4: Qt-Go Bindings
We will be using the Go Bindings from "therecipe" on Github. So let us clone the repo by running the following command.
go get -v -tags=no_env github.com/therecipe/qt/cmd/...
Once you have successfully cloned the repo, you will need to run the setup as follows.
$(go env GOPATH)/bin/qtsetup
Now you are good to go. We are now done with all the setups.
Step 5: Running the samples
We can run a simple hello world sample to check if our setup is running fine.
qtdeploy test desktop github.com/therecipe/examples/basic/widgets
If everything is working correctly then it should open the following window.
Now that we have setup Qt for Go, we can get started with developing some basic apps in Go using Qt and Qml. If you face any issues while doing the setup, please share it in the comments below. Also if you have any suggestions or some alternate ways for setup then also share the resources for other who are following this post.