Run my application without Qt on linux [duplicate] - linux

This question already has an answer here:
How to build Qt5 app with their static libs?
(1 answer)
Closed 9 years ago.
I wrote an application in Qt5 on Linux. How can I run this app on another Linux without using Qt and compile project again. I found this question: Run .EXE without Qt But it is related to Windows. I want to do that on Linux.

It is basically the same, however, for Linux:
Basic instructtion for static link:
http://qt-project.org/doc/qt-5.0/qtdoc/deployment-x11.html
Some note on deploying for Linux and licensing:
http://qt-project.org/doc/qt-5.0/qtdoc/deployment.html
If you need plug-ins:
http://qt-project.org/doc/qt-4.8/deployment-plugins.html

Related

Could not load file or assembly 'System.Web.Helpers' or one of its dependencies [duplicate]

This question already has answers here:
Could not load file or assembly 'System.Web.Helpers, error on IIS 8
(12 answers)
Closed 8 years ago.
The web application is working fine in my VS2010, but when I hosted it on server it shows error below
Could not load file or assembly 'System.Web.Helpers' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
Sounds as MVC has not been installed on the server.
and The dll is missing in the published (deployed environment). That is the reason why it is working in the local.
Solution - Copy reference to local
Right click on reference System.Web.Helpers and select Properties
Change Copy Local to true.
Build Solution
Re-dploy solution

How to deploy Qt5 application on Linux in compliance with LGPL? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
Recently, I have successfully migrated my Qt4 application to Qt5. In fact, the application builds and runs on a development machine using the pre-built binary Qt5 libraries from the qt-opensource-linux-x64-5.3.1 distribution.
Because my app needs to be compliant with the LGPL 2.1 license, the linking to Qt5 must be dynamic. (So I can**not** link to Qt statically!)
My problem is deployment of this application. I just can't come up with a package with all the sharable libraries, which would run across existing Linux distributions.
I can tolerate the requirement that the users need to install Qt5 themselves from the qt-opensource-linux-x64-5.3.1 binary. In fact, this would ensure even stricter compliance with LGPL 2.1. So, I can assume that the compatible Qt5 libraries are installed and available on the host machine (although I don't know if I can assume a specific directory for Qt installation)
However, it's not clear to me how to package my application to run on the host machine. Any help would be greatly appreciated!
I thought that other people with a similar problem would be interested what I ended up doing. So, I experimented some more with the simplest for me dynamic linking of the standard pre-build binary Qt5 shared libraries. It turned out that I could come up with a distribution that worked on the following Linux distros: CentOS 7 64-bit, Ubuntu 12.04 64-bit, and Slackware 14.1 64-bit with KDE desktop. The trick was not to include all the dependencies shown by the ldd command. Instead, my binary distribution contains only the following files:
+-platforms/
| +-libqxcb.so
+-libicudata.so.52
+-libicui18n.so.52
+-libicuuc.so.52
+-libQt5Core.so.5
+-libQt5DBus.so.5
+-libQt5Gui.so.5
+-libQt5PrintSupport.so.5
+-libQt5Widgets.so.5
+-qm
+-qm.sh
Where, qm is the application executable and qm.sh is the bash script for launching the application. The script looks as follows:
#!/bin/sh
dirname=`dirname $0`
tmp="${dirname#?}"
if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/qm "$#"
The application (qm) does not have any plugins and uses only the basic Qt widget library.
I should perhaps add that I was using the binary qt-opensource-linux-x64-5.3.1 distribution:
http://download.qt-project.org/official_releases/qt/5.3/5.3.1/qt-opensource-linux-x64-5.3.1.run.mirrorlist
I hope this is helpful.
IANAL
A commonly misunderstood aspect of LGPL is that it requires dynamic linking. It doesn't. It merely requires the ability for the party that got the code to relink it with the LGPL'd libraries that they were able to rebuild from the source that you used and provide to build the Qt that ships with your application.
Dynamic linking takes care of that by definition, as the linking is performed every time on application startup (prelinking is only a cache), and the library's source is available (in the distribution's package).
So, all you need to do is to split your application into two projects:
A static library project (.a) that contains all of your code. This is the closed source part.
An application executable that links the static library with the Qt library, C++ runtime, etc. At this point it's immaterial whether the Qt library is statically or dynamically linked.
To be compliant with LGPL, your users must be able to obtain, per terms of LGPL, all of the files necessary to perform step #2 (in the simplest case just a .pro file!), and the static library (.a) from step #1.
In fact, step #2 makes it very easy to provide a platform-specific way of linking your project with locally installed Qt. For example, if you were targeting RedHat systems, you could use the following script:
#! /bin/bash
# MiroProject.sh
yum install qt5-devel
qmake MiroProject
make install
The project file could look as follows, assuming that the static library resides in the same place as MiroProject.pro and dummy.cpp.
# MiroProject.pro
template = app
LIBS += -L. -lMiroProject
SOURCES += dummy.cpp
You need a to reference at least one symbol in the static library to have it link. This also avoids a different problem peculiar to MSVC. For example:
// dummy.cpp
int main(int argc, char ** argv);
void dummy__reference() {
main(0, 0);
}
A minimum package requires four files: MiroProject.sh - the script above, MiroProject.a from step #1, dummy.cpp and MiroProject.pro. And of course you must provide the sources for the Qt library that you've built MiroProject.a with.
Ideally, your package should include the whole shebang: Qt sources, your closed-source .a or .lib, the open-source wrapper, and a script that builds it all.
IANAL

Emulate/Simulate iOS in Linux [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I'm developing a web app that apparently is having problems in iOS devices. The problem is that I don't own an iOS device and I develop in Linux Ubuntu. I'm looking for a way to emulate/simulate this OS in Linux (especially the browser), but haven't found anything.
So far, what I've found is the iOS SDK's Simulator, but that is meant for the Mac. And also some emulator for Windows. Has anyone done this before?
The only solution I can think of is to install VMWare or any other VT then install OSX on a VM.
It works pretty good for testing.
On linux you can check epiphany-browser, resizes the windows you'll get same bugs as in ios. Both browsers uses Webkit.
Ubuntu/Mint:
sudo apt install epiphany-browser
BrowserStack.com
On this site, you can emulate a lot of iOS's devices online.
Run Ripple emulator(retired as of 2015-12-06) on Chrome
Run iPadian on WineHQ
Run QMole on Linux or Android
Run XCode on PureDarwin
Maybe, this approach is better, https://saucelabs.com/mobile, mobile testing in the cloud with selenium
You might want to try screenfly. It worked great for me.
As far as I know, there is no such a thing as iOS emulator on windows or linux, there are only some gameengines that enable you to compile same code for both iOS and windows or linux and there is a toolchain to compile iOS application using linux. none of them are realy emulator/simulator things. and to use that toolchain you need a jailbreaked iOS device to test binary file created using toolchain. I mean linux itself can't run the binary created itself. and by the way even in mac simulator is just an intermediate program which runs mac-compiled binary, since if you change compiling for iOS from simulator or the other way, all the files are rebuild. and also there are some real differences, like iOS is a case-sensitive operation while simulator is not.
so the best solution is to buy an iOS device yourself.

Create installation package in MonoDevelop [duplicate]

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
How do you beta test an iphone app?
How can I create an installation package for my iPad application so I can give it to my client so he can install it without my intervention?
There are a couple of ways to install iOS apps
Enterprise distribution
App Store distribution
Ad-Hoc via iTunes
Ad-Hoc via wireless
Excluding jailbroken devices, those are the only ways you can distribute an app.

Use dll win32 in linux platforms [duplicate]

This question already has answers here:
Using Windows DLL from Linux
(7 answers)
Closed 1 year ago.
I want to use a DLL library for Win32 in Linux.
Can I use a library of Wine to do that?
You should be able to do that using winelib.
Here is an interview with Ulrich Weigand a prominent WINE developer:
I managed one to get WineLIB to use a windows dll for VQF playing.
Do you forsee people using WineLIB to write applications in Linux that need a closed source windows dll?
Sure. IMO that's one of the main features of WineLib: you can use it to link native Windows DLLs into Linux apps.
I think there are lots of examples where this could be useful; think of ODBC drivers, video codecs, etc.
(That's why I recently added support for executing even 16-bit DLLs inside WineLib apps, because Win95 drivers tend to thunk down to 16-bit ...)
You can use win32 dll in WINE subsystem only if your invoking application is win32 executable too. Otherwise you should have dll sources and try to adapt them for linux compiler of according programming language.

Resources