I can't get VS Code to play nice with WxWidgets on Linux or MacOS. It seems like it's trying to default to MSW and gives an error (detailed below)
The specific question is about VSCode (autocomplete, don't give false errors) with WxWidgets. In command prompt, compiling any Wx project works perfect.
Steps:
VS Code is installed
-Create folder for project. Let's call it /src/hello
-Create a hello.cpp file with code from: https://docs.wxwidgets.org/3.0/overview_helloworld.html
-Download WxWidgets into /src/hello/deps
-Going through steps to compile and install Wx https://docs.wxwidgets.org/trunk/plat_osx_install.html
-Check my Intellisense includes to include ${workspaceFolder}/**
-Now, in the command prompt, if I run:
g++ hello.cpp 'wx-config --cxxflags --libs' -o hello
./hello runs perfect!
But in VSCode is unusable because it's giving me this error:
cannot open source file "../../../lib/vc_lib/msw/wx/setup.h" (dependency of "wx/wxprec.h")
I'm pretty sure msw is for windows?
I feel like I've tried everything:
-Downloaded and Git version of Wx (Yeah, I know it's the same. But people on the wx forums recommended trying...)
-Use the Homebrew WxWidgets install.
-Using the sample projects included with Wx.
-Using the Hello World
-Same issues in Linux and MacOS.
-Updating Intellisense's includes every way you can think of.
-Using the output of wxconfig and putting the cxxflags and lib include output into Intellisense.
Is anyone able to use VS Code on Linux or MacOS with the Hello World Wx example? If so what are your intellisense settings?
My properties:
I'd rather not use Cmake for this.
Related
Its my first time using vcpkg to install PCL library. After successfully installing using
.\vcpkg install pcl
i tried using vcpkg integrate install to link it but to no avail. I am using VS code and a MinGW gcc compiler under C:/MingGW/bin/gcc.exe
#include <pcl/point_types.h>
returns an error #include errors detected. cannot open source file. I dont understand using cmake files to compile, can someone help me out thanks!
I had the same issue once, but it was totally my fault.
There are more than one options on vcpkg for downloading pcl.
You can get x64 or x86 for example. Your project should be compiled
with the corresponding settings.
If it is not the problem, then here is an example for including pcl in
CMakeList.
cmake_minimum_required(VERSION 3.0)
set(DEMO_NAME lidar_lvx_sample)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(${DEMO_NAME} main.cpp lvx_file.cpp)
target_link_libraries(${DEMO_NAME}
PRIVATE
${PROJECT_NAME}_static PUBLIC ${PCL_LIBRARIES}
)
Based on this, you can make the changes in your CMakeList
I tried to install the nix package manager on an Android device with termux.
When I try to execute the nix applicatives (for instance nix-store or nix-env) I get the following error
/nix/store/y9mfv3sx75mbfibf1zna1kq9v98fk2nb-nix-1.11.16/bin/nix-env:
error while loading shared libraries:
/nix/store/kfk65xrfzndyyz6if5fxk4wrwz76h2lh-glibc-2.25-49/lib/libc.so:
invalid ELF header
The file seems to be a script for the GNU linker, so I'm wondering what is the problem, could it be that termux's version of ld is unable to correctly interpret GNU Linker's scripts?
Thanks in advance for any help.
Edit: It seems that if unset the LD_PRELOADED and the LD_LIBRARY_PATH variables the nix-applications work fine. Problem is that in doing so termux cannot lunch any other non nix application, such as bash for instance.
I am building Swift compiler from source on CentOS 6, and am running into a library issue. After fighting with the build script for a while I have got where running ./utils/build-script eventually gives:
+ /home/src/cmake-3.4.1-Linux-x86_64/bin/cmake --build /home/src/swift/build/Ninja-DebugAssert/cmark-linux-x86_64 -- all
ninja: no work to do.
llvm: using standard linker
+ cd /home/src/swift/build/Ninja-DebugAssert/llvm-linux-x86_64
+ /home/src/cmake-3.4.1-Linux-x86_64/bin/cmake -G Ninja -DCMAKE_C_COMPILER:PATH=clang -DCMAKE_CXX_COMPILER:PATH=clang++ '-DCMAKE_C_FLAGS= ' '-DCMAKE_CXX_FLAGS= ' -DCMAKE_BUILD_TYPE:STRING=Debug -DLLVM_ENABLE_ASSERTIONS:BOOL=TRUE -DLLVM_TOOL_SWIFT_BUILD:BOOL=NO '-DLLVM_TARGETS_TO_BUILD=X86;ARM;AArch64' -DLLVM_INCLUDE_TESTS:BOOL=TRUE -LLVM_INCLUDE_DOCS:BOOL=TRUE -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINTERNAL_INSTALL_PREFIX=local /home/src/swift/llvm
CMake Error at cmake/modules/CheckAtomic.cmake:36 (message):
Host compiler appears to require libatomic, but cannot find it.
Call Stack (most recent call first):
cmake/config-ix.cmake:296 (include)
CMakeLists.txt:403 (include)
-- Configuring incomplete, errors occurred!
See also "/home/src/swift/build/Ninja-DebugAssert/llvm-linux-x86_64/CMakeFiles/CMakeOutput.log".
See also "/home/src/swift/build/Ninja-DebugAssert/llvm-linux-x86_64/CMakeFiles/CMakeError.log".
./utils/build-script: command terminated with a non-zero exit status 1, aborting
(gcc-4.8.2 was what I compiled llvm with)
libatomic is there:
$ locate libatomic
/opt/gcc-4.8.2/lib64/libatomic.a
/opt/gcc-4.8.2/lib64/libatomic.la
/opt/gcc-4.8.2/lib64/libatomic.so
/opt/gcc-4.8.2/lib64/libatomic.so.1
/opt/gcc-4.8.2/lib64/libatomic.so.1.0.0
I just don't know how to tell the build system where to look. I have tried the usual CMAKE_LIBRARY_PATH (exporting on the command line - I am not sure if cmake works like the way LD_LIBRARY_PATH, LIBRARY_PATH work) but it can't seem to find it.
I also don't have root on the machine.
I had not tried building from source on CentOS 6 until I saw this question, but I have been able to build Swift 2.2 on CentOS 7.1 and Ubuntu 14.04, with partial success. A few things to think about:
You will need numerous dependencies required to build Swift, and unless
they happen to be already on the system, you will need root access to
install them.
Use -R flag with the build-script to create a release build.
Building in DebugAssert (the default) will require a lot of memory. In my case even 14 GB was not sufficient. A release build
can be done with about 6 GB.
As for your specific problem, it is related to Clang's dependency on GCC-related packages for headers and libraries. See, for example, Fedora 21 with clang, without gcc.
Even if you installed GCC 4.8.2 and adjusted the path to use gcc and g++ from 4.8.2, Clang may still be looking in the old GCC directories for headers and libraries. CMake first tries to compile a C++ test file that includes the header atomic, which does not exist in the old GCC. So, it then tries to link a C test program that uses the library libatomic, which again doesn't exist in the old GCC. You can see this by looking at llvm/cmake/modules/CheckAtomic.cmake mentioned by usr1234567. CMakeError.log and CMakeOutput.log can also provide valuable insight. BTW, when I was building Swift on CentOS 7.1, I didn't run into this problem because GCC 4.8.2 was used by Clang for headers and libraries and the atomic header was found, so the C++ file got compiled. However, had the libatomic check been done, it would have failed, because libatomic.so in the repository-provided 4.8.2 has INPUT ( <name of some non-existent file> ), so trying to link with libatomic errors out.
I'm sure there are various ways of dealing with this issue, but what solved the problem for me was setting the following environment variables, please adjust to your specific setup:
export CPLUS_INCLUDE_PATH=/opt/gcc-4.8.2/include/c++/4.8.2:/opt/gcc-4.8.2/include/c++/4.8.2/x86_64-unknown-linux-gnu
export LIBRARY_PATH=/opt/gcc-4.8.2/lib64:/opt/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2
Also make sure that your 4.8.2 version of libstdc++.so is available to the dynamic linker at runtime. Since you don't have root, do
export LD_LIBRARY_PATH=/opt/gcc-4.8.2/lib64
If you had root, you could use ldconfig.
Before you start building Swift, you may want to try building, using Clang, a simple C program linking it with libatomic (the code doesn't actually have to use any symbols from the lib) and a simple C++ program that includes the <atomic> header. When compiling the C++ program, use the -std=c++11 compiler flag. If the C++ program compiles successfully, then it is not necessary for the libatomic linking test to be successful.
Interestingly, the CMakeOutput.log file still did not report finding GCC 4.8.2 as a candidate GCC installation, but the configuration/build worked well past the error.
Hopefully this helps. Please let us know if you run into something else.
CheckAtomic.cmake seems to be part of LLVM. I found a file at Github and it tries to find '__atomic_fetch_add_4' from libatomic
check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
This fails for you. Check CMakeFiles/CMakeError.log to get more details why this test failed. Or try this line in a new project.
I am using eclipse to execute a cuda program. I have downloaded a CUDA PLUGIN for
eclipse. When I execute sample cuda program given by plugin its fine but when I try
to execute any other program I am getting error undefined reference to main...
make
Building target: Add_cuda
Invoking: NVCC Linker
nvcc -L/export/trainee3/dinesh/cuda5.0/lib64 -o "Add_cuda" ./mycuda.o -lcudart
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
I found in stackoverflow that some times we get this problem because of system startup file
I used flag -nostartfiles but it is not working in my case..
I have included lib64 and include path in c++ build.
So any suggestion to over come this problem....
We've been over this already.
Use nsight eclipse edition instead.
If you have cuda 5.0 or 5.5 installed, just type nsight in a terminal session.
If you really want to use that Eclipse CUDA plugin (which is no longer supported, I don't believe), then start with the C++ sample project, which you agree now and back then would work. Then modify the source code in that project. Don't create your own project.
Install CUDA 5. It comes with Nsight Eclipse version. Very Elegant to use. NV Visual profiler is integrated with Nsight. Syntax highlighting and debug mode are very easy to use.
I've been wanting to get my hands dirty with Opa, but had been really feeling the lack of a REPL, which is my weapon of choice in coming to terms with a new language. Lo and behold, the Opa Blog mentioned a tool called opatop which appeared to be just that, but it doesn't seem to be included the standard Mac or Ubuntu distributions.
I trekked over to GitHub, grabbed the source, and started building, but I'm getting the same error mentioned here:
+ /opt/local/bin/ocamlopt.opt dynlink.cmxa unix.cmxa str.cmxa nums.cmxa -g threads.cmxa -thread -I +zip zip.cmxa -I +ocamlgraph graph.cmxa -I /opt/local/lib/ocaml/ulex ulexing.cmxa buildinfos.cmxa libbase.cmxa compilerlib.cmxa libtrx.cmxa opacapi.cmxa passlib.cmxa libqmlcompil.cmxa jslang.cmxa ocamllang.cmxa libbsl.cmxa libbsl/bslregister.cmx opalang.cmxa -o libbsl/bslregister.native
File "_none_", line 1, characters 0-1:
Error: Cannot find file dynlink.cmxa
Command exited with code 2.
I know next to nothing about OCaml development, but it looks like other files with the same extension in the relevant library directory are "OCaml native library files". Given that, is this just a library that wasn't included in the OCaml distribution I ended up with? The Mantis bug referenced in the link above makes it look as though there may be conflicting assumptions about build environments at work.
Regardless, can anyone offer any advice?
Thanks!
OCaml isn't built with native dynlink for Lion yet, so dynlink.cmxa doesn't exist under the default install.
The following patch will enable allow you to build it. From within the OCaml src dir, patch -p1 < PATH/TO/PATCH, and reinstall OCaml as appropriate.
This is for OCaml 3.12.1
--- a/configure 2011-07-04 14:15:01.000000000 -0700
+++ b/configure 2011-08-26 10:18:42.000000000 -0700
## -619,9 +619,9 ##
case "$host" in
*-*-cygwin*) natdynlink=true;;
i[3456]86-*-linux*) natdynlink=true;;
x86_64-*-linux*) natdynlink=true;;
- i[3456]86-*-darwin10.*)
+ i[3456]86-*-darwin1[01].*)
if test $arch64 == true; then
natdynlink=true
fi;;
i[3456]86-*-darwin[89]*) natdynlink=true;;
I have investigated Opa build under OS X Lion and have pushed 2 patches on opalang waiting for approval to solve main problems.
So when the patches will be available, this is my steps (as i remember) to make Opa work under Lion :
First, install necessary tools :
Install OS X Lion
Install Xcode 4
Install MacPorts
Install wget (macports)
Install coreutils (macports)
Install md5sha1sum (macports)
(I think that's all...)
Then compile Opa from source :
git clone https://github.com/MLstate/opalang.git
cd opalang
dependencies/installation_helper.sh --prefix ~/Opa
change your PATH in your ~/.profile : export PATH=~/Opa/bin:$PATH
re-source your .bashrc : source ~/.profile
./configure -prefix ~/Opa
make all install
Your new opa compiler should be in ~/Opa/bin :)