How to compile and run gtest with cygwin

4,722 views
Skip to first unread message

xuxu

unread,
Jul 18, 2010, 2:24:10 AM7/18/10
to Google C++ Testing Framework
Hi,
I really need some asap help. My project's dead-line is about to end.
I build tests that run with visual studio but I need to run them from
a cmd so I got cygwin but I didn't manage to compile.
It seems that I've tried everything...
I think I just don't write the compiling command right.
I have tried also look at the makefile but there's a lot of Macros
that I'm not familiar with.

plz plz plz help me. Someone probably compile gtest with cygwin.
thanks

KjellKod

unread,
Jul 18, 2010, 8:27:42 AM7/18/10
to Google C++ Testing Framework
Hi,

What is the actual problem you're having? You should post the error
message.

1. It's possible to do compile line compiling of Visual Studio
projects
a) Ref: http://stackoverflow.com/questions/498106/how-do-i-compile-a-visual-studio-project-from-the-command-line
b) just google for it.

2. Have you tried to make just a simple "hello world" with gtest?
What compiler are you using then, gcc or visual studios's?

3) Are the path's setup correctly? You can always try to download the
gtest and compile it according to instructions from cygwin, if that
doesn't work then you need to change the environmental variables +
paths so that they work in cygwin.

Best Regards
KjellKod

xuxu

unread,
Jul 18, 2010, 1:06:36 PM7/18/10
to Google C++ Testing Framework
KjellKod, thanks a lot for your answer.

I've tried to run it from windows cmd but got a lot of error.
I think that the command that I write is wrong.

I wrote:
g++.exe -g the_test.cpp c:/gtest-1.5.0/gtest-1.5.0/src/gtest-all.cc
c:/
gtest-1.5.0/gtest-1.5.0/inclu/gtest/*.h c:/gtest-1.5.0/gtest-1.5.0/
include/gtest/internal/*.h -i c:/gtest-1.5.0/include -o Testing.o

part of the errors I'm getting:

c:/gtest-1.5.0/gtest-1.5.0/include/gtest/internal/gtest-linked_ptr.h:
122: error:
expected `;' before "lock"
c:/gtest-1.5.0/gtest-1.5.0/include/gtest/internal/gtest-param-util-
generated.h:5
0:45: gtest/internal/gtest-param-util.h: No such file or directory
c:/gtest-1.5.0/gtest-1.5.0/include/gtest/internal/gtest-param-util-
generated.h:5
1:39: gtest/internal/gtest-port.h: No such file or directory
c:/gtest-1.5.0/gtest-1.5.0/include/gtest/internal/gtest-param-util.h:
44:43: gtes
t/internal/gtest-internal.h: No such file or directory
c:/gtest-1.5.0/gtest-1.5.0/include/gtest/internal/gtest-param-util.h:
45:45: gtes
t/internal/gtest-linked_ptr.h: No such file or directory
c:/gtest-1.5.0/gtest-1.5.0/include/gtest/internal/gtest-param-util.h:
46:39: gtes
t/internal/gtest-port.h: No such file or directory
c:/gtest-1.5.0/gtest-1.5.0/include/gtest/internal/gtest-port.h:417:40:


I look over the README file for cygwin but there are some Macros that
I don't know what it is like: CXX so I didn't know how to use it

thanks

On Jul 18, 3:27 pm, KjellKod <kjell.hedst...@gmail.com> wrote:
> Hi,
>
> What is the actual problem you're having? You should post the error
> message.
>
> 1. It's possible to do compile line compiling of Visual Studio
> projects
> a) Ref:http://stackoverflow.com/questions/498106/how-do-i-compile-a-visual-s...

xuxu

unread,
Jul 18, 2010, 6:12:59 PM7/18/10
to Google C++ Testing Framework
I also install cygwin and tried to use the makefile at the gtest-1.5.0/
make
with some changes.
# A sample Makefile for building Google Test and using it in user
# tests. Please tweak it to suit your environment and project. You
# may want to move it to your project's root directory.
#
# SYNOPSIS:
#
# make [all] - makes everything.
# make TARGET - makes the given target.
# make clean - removes all files generated by make.

# Please tweak the following variable definitions as needed by your
# project, except GTEST_HEADERS, which you can use in your own targets
# but shouldn't modify.

# Points to the root of Google Test, relative to where this file is.
# Remember to tweak this if you move this file.
GTEST_DIR = gtest-1.5.0/gtest-1.5.0

# Where to find user code.
USER_DIR = gtest-1.5.0/gtest-1.5.0/samples

# Flags passed to the preprocessor.
CPPFLAGS += -I$(GTEST_DIR)/include

# Flags passed to the C++ compiler.
CXXFLAGS += -g -Wall -Wextra

# All tests produced by this Makefile. Remember to add new tests you
# created to the list.
TESTS = sample1_unittest

# All Google Test headers. Usually you shouldn't change this
# definition.
GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \
$(GTEST_DIR)/include/gtest/internal/*.h

# House-keeping build targets.

all : $(TESTS)

clean :
rm -f $(TESTS) gtest.a gtest_main.a *.o

# Builds gtest.a and gtest_main.a.

# Usually you shouldn't tweak such internal variables, indicated by a
# trailing _.
GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $
(GTEST_HEADERS)

# For simplicity and to avoid depending on Google Test's
# implementation details, the dependencies specified below are
# conservative and not optimized. This is fine as Google Test
# compiles fast and for ordinary users its source rarely changes.
gtest-all.o : $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
$(GTEST_DIR)/src/gtest-all.cc

gtest_main.o : $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
$(GTEST_DIR)/src/gtest_main.cc

gtest.a : gtest-all.o
$(AR) $(ARFLAGS) $@ $^

gtest_main.a : gtest-all.o gtest_main.o
$(AR) $(ARFLAGS) $@ $^

# Builds a sample test. A test should link with either gtest.a or
# gtest_main.a, depending on whether it defines its own main()
# function.

sample1.o : $(USER_DIR)/sample1.cc $(USER_DIR)/sample1.h $
(GTEST_HEADERS)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/sample1.cc

sample1_unittest.o : $(USER_DIR)/sample1_unittest.cc \
$(USER_DIR)/sample1.h $(GTEST_HEADERS)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/sample1_unittest.cc

sample1_unittest : sample1.o sample1_unittest.o gtest_main.a
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@

I've got an error: make: *** No rule to make target `gtest-1.5.0/
gtest-1.5.0/samples/sample1.cc', needed by `sample1.o'. Stop.

Can someone help me with that. What's the problem??

thanks
> I look over the README file forcygwinbut there are some Macros that
> I don't know what it is like: CXX so I didn't know how to use it
>
> thanks
>
> On Jul 18, 3:27 pm, KjellKod <kjell.hedst...@gmail.com> wrote:
>
> > Hi,
>
> > What is the actual problem you're having? You should post the error
> > message.
>
> > 1. It's possible to do compile line compiling of Visual Studio
> > projects
> > a) Ref:http://stackoverflow.com/questions/498106/how-do-i-compile-a-visual-s...
> > b) just google for it.
>
> > 2. Have you tried to make just a simple "hello world" with gtest?
> > What compiler are you using then, gcc or visual studios's?
>
> > 3) Are the path's setup correctly? You can always try to download the
> > gtest and compile it according to instructions fromcygwin, if that
Reply all
Reply to author
Forward
0 new messages